Microsoft Excelmacros编码问题

我有一个macros,但它似乎并没有工作。 我有一个有多个工作表的工作簿。 我基本上要复制单元格B1,G1,M94全部到一个单独的“摘要”工作表。 如果有更多的A5,B5和C5等,复制单元格到A4 B4和C4。

我的编码在下面。 我试图做到这一点,所以它只做了一张纸,但需要大约10张名称不同的纸张。

Sub SummurizeSheets() Dim ws As Worksheet Application.ScreenUpdating = False Sheets("Summary").Activate For Each ws In Worksheets If ws.Name <> "17B CUNNINGHAM" Then ws.Range("B1, G1, M94").Copy Worksheets("Summary").Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) _ .PasteSpecial (xlPasteValues) End If Next ws End Sub 

你将遇到的问题是你不能复制/粘贴你尝试的方式(多个部分)的范围。这应该工作:

 Sub SummurizeSheets() Dim ws As Worksheet, wsSummary As Worksheet Dim c As Range Application.ScreenUpdating = False Set wsSummary = Sheets("Summary") ' Set destination cell Set c = wsSummary.Range("A4") For Each ws In Worksheets If ws.Name <> "17B CUNNINGHAM" And ws.Name <> "Summary" Then ws.Range("B1").Copy c.PasteSpecial (xlPasteValues) ws.Range("G1").Copy c.Offset(0, 1).PasteSpecial (xlPasteValues) ws.Range("M94").Copy c.Offset(0, 2).PasteSpecial (xlPasteValues) ' Move destination cell one row down Set c = c.Offset(1, 0) End If Next ws Application.ScreenUpdating = True End Sub 

我已经使用了一个目标单元格放置粘贴,然后您可以抵消下一行,以便您可以使用此为多个工作表。 也排除了For Each的汇总表并重置ScreenUpdating