Я пытаюсь написать какой-то простой код, который извлекает диапазоны из одной рабочей книги (источника) и вставляет их в другую рабочую книгу (объединяет).Я хочу, чтобы «исходная» рабочая книга была указана при запуске макроса из «консолидированной» рабочей книги.
Приведенный ниже код работает нормально, когда я использую «Workbooks.Open (....», но при удалении ».Open "(например, Рабочие книги (## filename ##)) Я получаю нижний индекс ошибки вне диапазона.
Я использую Excel 2013, но кажется, что обе книги находятся в одном экземпляре (я вижуони оба в списке проектов VBA. Имя файла правильное и включает в себя расширение (опять же, код, как показано ниже, прекрасно работает, пока я его ".Открываю", но я хочу иметь возможность запускать код несколько раз, а я нетЯ хочу, чтобы файл открывался снова и снова).
Код также работает с ActiveWorkbook, но требует, чтобы я сначала перешел к «исходной» книге, а затем запустил макрос, что также не является предпочтительным.
Sub CopyData()
Dim wbk_data as Workbook 'source book
Dim wbk_cons as Workbook 'consolidate book
Dim wbk_data_s as Worksheet 'source sheet
Dim wbk_cons_s as Worksheet 'consolidate sheet
Dim target As String
target = [wbk_name].Value2 'filename is included as a named cell in the worksheet
Set wbk_data = Workbooks(target) 'this is the line that doesn't work.
'Set wbk_data = Workbooks.Open(target) does work in this place
Set wbk_cons = ThisWorkbook
Set wbk_data_s = wbk_data.Worksheets("ExampleSrcSheet")
Set wbk_cons_s = wbk_cons.Worksheets("ExampleConsSheet")
Ценю любые советы.