#excel #vba
#excel #vba
Вопрос:
У меня есть две книги, некоторые листы имеют одинаковые имена. Я хотел бы экспортировать (скопировать) некоторые данные с листа A в Workbook teaminsoв эту книгу (где находится код) на лист с тем же именем, и я застрял. Как написать: цикл по листам в рабочей тетради 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
Спасибо за помощь.
Ответ №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