我不断遇到错误(这种错误的发生没有任何模式或可感知的原因)。当我尝试执行pastespecial(公式或值)时,会发生错误。我很好奇是否有另一种方法可以在 VBA 中粘贴值或公式,因为数组中的行数是可变的(1 到 ~100)。我附上了下面的代码片段。
'长度和选择区域都定义为字符串
Range("P1").Select
'length是单元格中计算表格长度的公式
length = ActiveCell.Value
selectionarea = "B3:CM" + length
Range("B2:CM2").Select
Selection.Copy
Range(selectionarea).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
selectionarea = "C2:O" + length
Range(selectionarea).Select
Selection.Copy
Range("BL3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
最佳答案
尝试这样的事情
Dim rng As Range, Length
Length = Range("P1").Value
'EDIT use this for formulas
Range("B2:E" & Length).Formula = Range("B2:E2").Formula
'or this should also work
'Range("B2:E" & Length).FillDown
Set rng = Range("C2:O" & Length)
Range("BL3").Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value
关于excel - 运行时错误 1004 "Method of Range Class Failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15912598/