Уважаемые, помогите советом!
Есть два файла с разным количеством листов, но при этом в обоих файлах есть листы с именами с 1 по 200. Как сделать так, чтобы сначала шло сравнение по наименованию листов, а потом осуществлялось копирование диапазона по соответствующим листам из одного файла в другой?
Копирование данных из разных файлов по соответствующим листам
Модератор: Naeel Maqsudov
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте kto_tut.
имена листов в двух книгах Вам поможет сравнить подобный код:Евгений.
имена листов в двух книгах Вам поможет сравнить подобный код:
Код: Выделить всё
Dim oW0 As Workbook, oW1 As Workbook
Dim oSh0 As Object, oSh1 As Object
Set oW0 = Workbooks("Книга1.xls")
Set oW1 = Workbooks("Книга2.xls")
For Each oSh0 In oW0.Sheets
For Each oSh1 In oW1.Sheets
If oSh0.Name = oSh1.Name Then
'процедура копирования
End If
Next
Next
...
Евгений, спасибо Вам огромное!
Не поможете мне еще одним ответом? )
в процедуре при копировании/вставке возникает ошибка несоответствия типов, а где именно никак не могу понять:
Dim twbname As Workbook, awbname As Workbook
Dim tshname As Object, ashname As Object
Set twbname = Application.ThisWorkbook
Set awbname = Application.ActiveWorkbook
For Each tshname In twbname.Sheets
For Each ashname In awbname.Sheets
If tshname.Name = ashname.Name Then
Workbooks(twbname).Worksheets(tshname).Range("C3:C61").Copy _
Workbooks(awbname).Worksheets(ashname).Range("C6") ' в этом месте выдает ошибку о несоответствии типов
End If
Next
Next
Не поможете мне еще одним ответом? )
в процедуре при копировании/вставке возникает ошибка несоответствия типов, а где именно никак не могу понять:
Dim twbname As Workbook, awbname As Workbook
Dim tshname As Object, ashname As Object
Set twbname = Application.ThisWorkbook
Set awbname = Application.ActiveWorkbook
For Each tshname In twbname.Sheets
For Each ashname In awbname.Sheets
If tshname.Name = ashname.Name Then
Workbooks(twbname).Worksheets(tshname).Range("C3:C61").Copy _
Workbooks(awbname).Worksheets(ashname).Range("C6") ' в этом месте выдает ошибку о несоответствии типов
End If
Next
Next
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте kto_tut.
цикл уже обращается к объекту, и потому явное обращение к объекту по имени избыточно
Евгений.
P.S. помещайте Ваш код для удобочитаемости в тэги [соde]... ...[/соde]
Код: Выделить всё
...
If tshname.Name = ashname.Name Then
tshname.Range("C3:C 61").Copy [B]Destination:=[/B]tshname.Range("C6")
End If
...
Евгений.
P.S. помещайте Ваш код для удобочитаемости в тэги [соde]... ...[/соde]
СПАСИБКИ ВАМ ОГРОМНОЕ!!! ))) все работает!!! ура ура!! )))