在多张纸中复制相同的选择

时间:2016-08-02 10:55:26

标签: excel excel-vba vba

我有以下VBA宏:

Sub test()
For Each wks In ThisWorkbook.Worksheets
Range("J1:Q300").Copy
Range("A301:H601").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next
End Sub

想法是复制范围" J1:Q300"到" A301:H601"在我的Excel文件中的每100张纸中。上面的宏没有给我任何错误信息,但似乎只在第一张表中运行。

您是否知道我的代码中可能存在哪些错误?

2 个答案:

答案 0 :(得分:1)

如果您只使用Range(),您将始终参考当前活动的工作表 您必须通过提供wks.Range()来更改当前活动工作表或更具体:

Sub test()
  For Each wks In ThisWorkbook.Worksheets
    wks.Range("J1:Q300").Copy
    wks.Range("A301:H601").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
  Next
End Sub

答案 1 :(得分:1)

您需要将当前 wks 对象添加到您的范围:

Sub test()

Dim wks As Worksheet

For Each wks In ThisWorkbook.Worksheets
    wks.Range("J1:Q300").Copy
    wks.Range("A301:H601").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
Next wks

End Sub