Я пытаюсь выбрать некоторые данные из рабочей книги в Excel, скопировать их и вставить в другую. Но когда я запускаю свой код в VBA, он просто ничего не делает.

Код можно увидеть ниже:

Sub foo3()
Dim x As Workbook
Dim y As Workbook
Dim vals As Variant

'## Open both workbooks first:
Set x = Workbooks.Open("<Path of the origin\Archive.xslm>")
Set y = Workbooks.Open("<Destination Path\Archive1.xslm>")

'Store the value in a variable:
vals = x.Sheets("Plan1").Range("A1").Value

'Use the variable to assign a value to the other file/sheet:
y.Sheets("Plan1").Range("A1").Value = vals

'Close x:
x.Close
y.Close

End Sub

Может ли кто-нибудь помочь мне найти решение для этого? Спасибо!

2 ответа2

0

Заменить Избавиться от вашего кода:

Установите х = рабочие книги.Открыто("")

Прямо из ячейки в вашей целевой книге, которая открыта:

='C:\Users\youtheuser\Desktop\[bookC.xlsx]Sheet1'!$A$1


или динамический

='C:\Users\youtheuser\Desktop\[bookC.xlsx]Sheet1'!A1

Это все, что нужно сделать!

0

В Excel есть встроенная возможность записи макросов, которая будет генерировать код VBA на основе ваших действий. Лучше всего при отладке этой проблемы записывать макрос, который вы «делаете вручную», делая то, что вы пытаетесь написать в VBA, а затем просматриваете генерируемый код.

Всегда проверяйте, что записанный макрос действительно делает то, что вы делали - он не на 100% точен.

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

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

Вы можете найти любое количество руководств по записи макросов. Вот прямое руководство для Excel 2013.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .