我一直遇到一个错误(没有出现任何模式或原因)。当我尝试执行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
答案 0 :(得分:2)
尝试这样的事情
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
答案 1 :(得分:1)
错误:对象'_Worksheet'的方法'粘贴'失败 - 1004
解决方案:在将形状从一个工作表复制到另一个工作表之前,需要记住Excel中的问题。
示例:以前我的代码如下所示:
Sheet1.Shapes(0).Copy
Targetsheet.Paste
我修改了以下内容:
Sheet1.Activite
Sheet1.Shapes(0).Select
Sheet1.Shapes(0).Copy
Targetsheet.Paste
现在工作正常。