这是我遍历所有工作表的代码。我想从所有工作表中复制特定的单元格值并将其粘贴到我的主工作表中。首先我尝试了一张工作表,工作正常。我修改了相同的代码来遍历工作簿中的所有工作表。我显示了我要复制的工作表名称和数据。它正确地进入所有工作表但我没有获得工作表的数据,除了第一张表。即使它没有在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
答案 0 :(得分:1)
一些事情:
Range()
变量对ws
进行限定请尝试使用以下代码:
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