运行时错误1004“范围类的方法失败”

我一直遇到一个错误(这发生在没有模式或percieved原因)。 当我尝试做一个pastespecial(公式或值)时发生错误。 我很好奇,如果有一种替代方法来粘贴VBA中的值或公式,因为数组中的行数是可变的(1〜100)。 我附上了下面的代码片段。

'length和selectionarea都被定义为string

Range("P1").Select 

'长度是计算表长度的单元格中的公式

 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 

错误:对象'_Worksheet'的方法“粘贴”失败 – 1004
解决scheme:在将形状从一张纸复制到另一张纸之前,需要记住Excel中的问题。

  1. 激活工作表(从您正在复制的位置)。
  2. 从工作表中select形状。
  3. 从工作表复制形状。
  4. 粘贴到形状目标工作表

例如:以前我的代码如下所示:

  Sheet1.Shapes(0).Copy Targetsheet.Paste 

我修改了如下所示:

  Sheet1.Activite Sheet1.Shapes(0).Select Sheet1.Shapes(0).Copy Targetsheet.Paste 

现在它工作正常。