繁体   English   中英

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

[英]Looping through all the worksheets in a workbook

这是我遍历所有工作表的代码。 我想从所有工作表中复制特定的单元格值并将其粘贴到我的主表中。 首先,我尝试了一张工作表,它的工作正常。 我修改了相同的代码以遍历工作簿中的所有工作表。 我显示了工作表名称和要复制的数据。 它正确地进入了所有工作表,但是除了第一张纸之外,我没有得到工作表的数据。 除了第一个工作表,它甚至没有显示在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

几件事情:

  • 您实际上不是通过使用ws变量限定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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM