【问题标题】:VBA, For Each Next - If sheet name in this workbook equals to a sheet name in another workbookVBA,For Each Next - 如果此工作簿中的工作表名称等于另一个工作簿中的工作表名称
【发布时间】:2021-04-29 16:07:25
【问题描述】:

我有两个工作簿,有些工作表名称相同。我想将 Workbook TeamINSO 中的工作表 A 中的一些数据导出(复制)到此工作簿(代码所在的位置)到具有相同名称的工作表中,但我被卡住了。 如何编写:遍历工作簿TeamINSO中的工作表,如果工作表名称等于该工作簿中的工作表名称,则复制范围?

For Each ws In TeamINSO.Worksheets
    If ws.Name = ThisWorkbook.Worksheets(ws.Name) Then
        Workbooks(TeamINSO).Worksheets(ws.Name).Range("A3:C400").Copy
               ThisWorkbook.Worksheets(ws.Name).Range("A2").PasteSpecial xlPasteValues
    Else
    End If
Next ws

感谢您的帮助。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你可以这样做:

    Dim ws As Worksheet, wsD as Worksheet
    
    For Each ws In TeamINSO.Worksheets
        'see if there's a match
        On Error Resume Next  'ignore error if no match
        Set wsD = ThisWorkbook.Sheets(ws.Name)
        On Error Goto 0       'stop ignoring errors
        'any match?
        If Not wsD Is Nothing Then
            'Transfer values 
            With ws.Range("A3:C400")
              wsD.Range("A2").Resize(.Rows.Count, .Columns.Count).Value = .Value
            End With
        End If
    
        Set wsD = Nothing 'set up for next iteration if any
    Next ws
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2022-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多