循环遍历工作簿中的所有工作表

这是我的代码来循环所有的工作表。 我想复制所有表格中的特定单元格值并将其粘贴到我的主表单中。 首先,我尝试了一张工作表,工作正常。 我修改了相同的代码来遍历工作簿中的所有工作表。 我显示了我想要复制的工作表名称和数据。 它正确地去所有的工作表,但我没有得到第一张工作表以外的工作表的数据。 即使它不显示在第一个工作表除外msgbox。

For Each ws In ActiveWorkbook.Worksheets If Range("C3").Value = "" Then Coverge_ID = Range("C2") MsgBox Coverge_ID ThisWorkbook.Worksheets(2).Activate Range("A1").Offset(I, 0) = Coverge_ID I = I + 1 Else Coverge_ID = Range("C3") MsgBox Coverge_ID ThisWorkbook.Worksheets(2).Activate Range("A1").Offset(I, 0) = Coverge_ID I = I + 1 End If MsgBox ws.Name Next ws 

几件事:

  • 你实际上不是通过用你的wsvariables来限定Range()来引用循环中的表格
  • 您不需要激活工作表来为其附加值

试试下面的代码:

 Dim ws As Worksheet Dim i As Long Dim Coverage_ID As String For Each ws In ActiveWorkbook.Worksheets If ws.Range("C3").Value = "" Then Coverage_ID = ws.Range("C2").Value MsgBox Coverage_ID ThisWorkbook.Worksheets(2).Range("A1").Offset(i, 0) = Coverage_ID i = i + 1 Else Coverage_ID = ws.Range("C3").Value MsgBox Coverage_ID ThisWorkbook.Worksheets(2).Range("A1").Offset(i, 0) = Coverage_ID i = i + 1 End If MsgBox ws.Name Next ws