2

我一直遇到一个错误(发生这种错误时没有模式或可感知的原因)。当我尝试执行 pastespecial(公式或值)时会发生错误。鉴于数组中的行数是可变的(1到~100),我很好奇是否有另一种方法可以在VBA中粘贴值或公式。我附上了下面的代码片段。

'长度和选择区域都定义为字符串

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
4

2 回答 2

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
于 2013-04-09T21:36:16.293 回答
1

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

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

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

           Sheet1.Shapes(0).Copy
           Targetsheet.Paste

我已经修改了以下内容:

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

现在它工作正常。

于 2013-09-11T06:24:54.510 回答