Копирование данных из разных файлов по соответствующим листам

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
kto_tut
Сообщения: 6
Зарегистрирован: 13 май 2009, 19:32

Уважаемые, помогите советом!
Есть два файла с разным количеством листов, но при этом в обоих файлах есть листы с именами с 1 по 200. Как сделать так, чтобы сначала шло сравнение по наименованию листов, а потом осуществлялось копирование диапазона по соответствующим листам из одного файла в другой?
Teslenko_EA
Сообщения: 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
...
Евгений.
kto_tut
Сообщения: 6
Зарегистрирован: 13 май 2009, 19:32

Евгений, спасибо Вам огромное!
Не поможете мне еще одним ответом? )

в процедуре при копировании/вставке возникает ошибка несоответствия типов, а где именно никак не могу понять:

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
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте kto_tut.

Код: Выделить всё

...
        If tshname.Name = ashname.Name Then
            tshname.Range("C3:C 61").Copy [B]Destination:=[/B]tshname.Range("C6")
        End If
...
цикл уже обращается к объекту, и потому явное обращение к объекту по имени избыточно
Евгений.
P.S. помещайте Ваш код для удобочитаемости в тэги [соde]... ...[/соde]
kto_tut
Сообщения: 6
Зарегистрирован: 13 май 2009, 19:32

СПАСИБКИ ВАМ ОГРОМНОЕ!!! ))) все работает!!! ура ура!! )))
Ответить