Создайте макрос, который копирует и вставляет данные - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать макрос, который открывает файл, копирует и вставляет данные из этого файла в новый лист Excel.

Проблема в том, что файл обновляется каждый месяц.Таким образом, у меня есть лист в Excel, где я скопировал и вставил путь к этому файлу (инструкции и его в ячейке A2).Я хочу знать, как я могу настроить свой код, чтобы открыть этот файл, скопировать его данные и закрыть файл.Я также хочу создать кнопку, которую я могу нажать для запуска макроса.

Пока это мой код:

Sub ImportData_Click()
'open the source workbook and select the source sheet
Workbooks.Open Filename:="'Instructions!'$A$2"   'this is the part of the 
code that I'm having trouble with
Sheets("ABC").Select

' copy the source range
Sheets("ABC").Range("C:AI").Select
Selection.Copy

' select current workbook and paste the values 
ThisWorkbook.Activate
Sheets("ABC DUMP").Select
Sheets("ABC DUMP").Range("A:").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

'close the source workbook
Windows("'Instructions!'$A$2").Activate    

ActiveWorkbook.Close

End Sub

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

У вас есть несколько незначительных синтаксических ошибок.С A2 данными, такими как:

C:\TestFolder\ABC.xls

, это, кажется, работает очень хорошо:

Sub ImportData_Click()
    'open the source workbook and select the source
    Dim wb As Workbook

    Workbooks.Open Filename:=Sheets("Instructions").Range("$A$2").Value
    Set wb = ActiveWorkbook
    Sheets("ABC").Select

    ' copy the source range
    Sheets("ABC").Range("C:AI").Select
    Selection.Copy

    ' select current workbook and paste the values
    ThisWorkbook.Activate
    Sheets("ABC DUMP").Select
    Sheets("ABC DUMP").Range("A1").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

    'close the source workbook

    wb.Close

End Sub

Это может быть перекодировано, чтобы избежать Select

0 голосов
/ 04 октября 2018

Если вы определяете переменную как строку, а затем задаете ее равной вашему имени файла ('Инструкции!' $ A $ 2), вы можете использовать эту переменную в функции workbooks.open.

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

Workbooks.Open Filename: = PathName & Filename

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...