VBA Excel: В одну книгу консолидировать данные с двух других

vinney

Турист
Регистрация
22 Фев 2005
Сообщения
4
Реакции
0
Credits
4
Задача:
VBA Excel: В одну книгу консолидировать данные с двух других

Ниже часть кода:
Код:
Dim SourceR As Range
Dim TargetR As Range

Private Sub SourceSheets_Click()
TownBox.Clear
Workbooks.Item(SourceListBox.ListIndex + 1).Activate
n = SourceListBox.ListIndex + 1
n1 = SourceSheets.ListIndex + 1
    With Application.Workbooks.Item(n)
        Worksheets(n1).Activate
        SourceR = Range(Cells(1, 1), Cells(Max, 255))  
    End With

End Sub

--------------------
Код:
SourceR = Range(Cells(1, 1), Cells(Max, 255))

Вот тут возникает ошибка, что 91, что SourceR "Object Variable or With block variable not set"
Как правильнее описать или обращаться к переменной SourceR

Идея, выражаясь словами других языков такова:

В секции Public описАть переменные SourceR и TargetR типа Range.
Они будут относится к разным книгам.
Требуется перетаскивать данные из одной в другую.

Я запутался.. Натолкните на мысль. ;(
 

i2s_

Турист
Регистрация
14 Ноя 2009
Сообщения
3
Реакции
0
Credits
6
попробуй .Worksheets(n1).Activate, если это компонент Application.Workbooks.Item(n)
 

ZeVS

Специалист
Местный
Регистрация
2 Окт 2005
Сообщения
220
Реакции
77
Credits
10
Я на днях на те же грабли наступил. Присвоения объектов надо делать оператором Set:
Код:
Set SourceR = Range(Cells(1, 1), Cells(Max, 255))
Без оного только простые типы данных: integer, long, string и т.д.