引用新添加的工作表

我想参考新添加的工作表。 他们被添加一个循环。

它们被命名为Sheet1Sheet2Sheet3等。我也有一个variablesn ,当创buildSheet1时等于1,当创buildSheet2时等于2,当创buildSheet3时等于3,依此类推。

我的代码如下所示:

 For i = 2 To 1000 If Worksheets("DATA").Cells(i, "A").Value <> "" And Worksheets("DATA").Cells(i, "A").Value <> "TOTAL" Then Worksheets("Template").Cells(1, "C").Value = Worksheets("DATA").Cells(i, "B").Value Worksheets("Template").Cells(2, "C").Value = Worksheets("DATA").Cells(i, "C").Value Worksheets("Template").Cells(3, "C").Value = Worksheets("DATA").Cells(i, "A").Value Worksheets("Template").Cells(5, "D").Value = Worksheets("DATA").Cells(i, "D").Value Worksheets("Template").Cells(5, "E").Value = Worksheets("DATA").Cells(i, "E").Value Sheets.Add n = 0 n = n + 1 Worksheets("Template").Cells.Copy Worksheets("Sheet & n").Range("A1").Paste 'Problem is in this line Worksheets("Sheet" & n).Activate ' And in this line Application.PrintCommunication = False With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With 

我有评论标有行的问题。
我的问题是如何通过使用nvariables引用Sheet1Sheet2等?

请耐心等待,因为我对VBA相当陌生。 如果我的问题含糊或难以理解,请告诉我。
先谢谢你。

引号内的任何内容将被视为string。

"Sheet & n"更改为"Sheet" & n

你也应该避免使用.Activate 。 有趣的阅​​读

还有一件事:P

您不需要Activate表来粘贴到它。 你可以做一行。 例如。

 ThisWorkbook.Sheets("Sheet1").Range("A1:A5").Copy _ ThisWorkbook.Sheets("Sheet2").Range("A1") 

您也可以在创build时保存对工作表的引用,所以不必猜测名称。 replace您的线路Sheets.Add 。添加我的前两行:

 Dim oSheet As Worksheet Set oSheet = Sheets.Add '***** Do what you need with the sheet oSheet.Range("A1").Paste Debug.Print oSheet.Name '***** Clear the reference when you're done Set oSheet = Nothing