Копировать данные в основную рабочую книгу из другой открытой рабочей книги, не указывая FileName - PullRequest
0 голосов
/ 09 ноября 2018

Есть ли способ, где я могу копировать и вставлять данные из любой открытой рабочей книги, не используя Workbooks.Open("FileName")? Я хочу иметь возможность скопировать тот же набор данных из рабочей книги, закрыть его, и когда я открою другую рабочую книгу, макрос узнает, что я копирую из второй рабочей книги.

Например: Код 1: копирование из первого источника данных

Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open("C:\Users\HONL120\Desktop\Sept HC Reports\HR Headcount Report 2018 Australia SEPTEMBER.XLSX")

Код 2: Копирование из второго источника данных

    Set wb1 = ThisWorkbook
    Set wb2 = Workbooks.Open("C:\Users\HONL120\Desktop\Sept HC Reports\18 09 Malaysia HR Headcount Report 2018 (Sept).xlsx")

Из приведенного выше примера я хотел бы избежать этого и дать макросу понять, что когда я открываю второй источник данных, я извлекаю из него данные, не вводя имя файла заново.

Есть ли способ достичь этого? Я надеюсь, что мое объяснение ясно и заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Извините, я не совсем понял, какова ваша цель, но я полагаю, вы можете установить макрос в вашем файле шаблона Excel (пожалуйста, посмотрите, где он находится, так как это зависит от вашей версии) , с кодом activeworkbook .range (xxx) .copy.

В этом случае всякий раз, когда вы открываете новую книгу, которую хотите скопировать, запускайте этот макрос в этом превосходном состоянии (вы можете даже установить макрос на панель быстрого доступа для более легкого доступа)

Надеюсь, что это поможет.

0 голосов
/ 09 ноября 2018

Полагаю, вы можете просмотреть все открытые книги и использовать If Statement , чтобы игнорировать те, которые вы не хотите включать:

Dim wb As Workbook

For Each wb In Application.Workbooks
    If wb.Name <> "PERSONAL.XLSB" And wb.Name <> ThisWorkbook.Name Then
        Rem: Do what you need to do with the other workbook
    End If
Next wb
...