使用变量复制并粘贴到目标?

时间:2015-07-02 21:13:02

标签: excel excel-vba vba

我对此语法感到茫然。我已经搜索过并尝试了20种不同的方式来编写它。如何修复我的语法或我副本目的地的问题?这是代码:

Dim wksMain As Worksheet, wksStats As Worksheet, i As Long, x As Integer

Set wksMain = Sheets("Main")
Set wksStats = Sheets("Stats")

For x = 1 To 3
   i = 100000000

   wksMain.Range("C3") = i * x
   wksMain.Range("C4") = i * x + i

   wksMain.Calculate

   wksStats.Cells(1, x + 1).Value = wksMain.Cells(8, 4).Value

   wksMain.Range(Cells(16, 6), Cells(37, 6)).Copy _
   Destination:=wksStats.Range(Cells(2, x + 1), Cells(24, x + 1))
Next x

来自评论

我得到的错误是Run-time error '1004' Method 'Range' of object'_Worksheet 'failed'

1 个答案:

答案 0 :(得分:3)

你没有提到你得到的错误以及在哪一行,但我可以看到

的问题
wksMain.Range(Cells(16, 6), Cells(37, 6)).Copy _
Destination:=wksStats.Range(Cells(2, x + 1), Cells(24, x + 1))

这是因为你没有完全限定你的细胞对象。

试试这个(未经测试的)

wksMain.Range(wksMain.Cells(16, 6), wksMain.Cells(37, 6)).Copy Destination:= _
wksStats.Range(wksStats.Cells(2, x + 1), wksStats.Cells(24, x + 1))

如果您没有对单元格对象进行限定,那么它们将始终引用活动工作表。