VBA: установить книгу и активировать ошибку книги - PullRequest
0 голосов
/ 28 сентября 2018

Есть простая задача, которую я не могу понять.Я хотел бы скопировать значение wb1.ws1 и вставить в wb2.ws2

Это то, что я пробовал.

Dim wb1 as Workbook, wb2 as Workbook
Dim ws1 as Worksheet, ws2 as Worksheet

'Open wb1 and ws1 and set
Set wb1 = Workbooks.Open("R:\Workbook1.xlsx")
Set ws1 = Sheet("Sheet1")

'Open wb2 and ws2 and set
Set wb2 = Workbooks.Open("R:\Workbook2.xlsx")
Set ws2 = Sheet("Sheet2")

'Copy Value of wb1.ws1 and paste into wb2.ws2
wb1.ws1.Range("A1").Copy wb2.ws2.Range("A1")

Почему это не работает?Кажется, что я не могу выбрать диапазон, указав wb1.ws1.Range (XYZ)

. Это заставляет меня разделять строки на

wb1.Activate
ws1.Select
Range("A1").Copy
wb2.Activate
ws2.Select
Range("A1").Paste

. Это кажется неэффективным, но я не знаю,как устранить кошмар Activate-Select

1 Ответ

0 голосов
/ 28 сентября 2018

Как только вы установите рабочий лист, родительский объект рабочей книги уже определен.поэтому объявите родителя в Set

Dim wb1 as Workbook, wb2 as Workbook
Dim ws1 as Worksheet, ws2 as Worksheet

'Open wb1 and ws1 and set
Set wb1 = Workbooks.Open("R:\Workbook1.xlsx")
Set ws1 = wb1.WorkSheets("Sheet1")

'Open wb2 and ws2 and set
Set wb2 = Workbooks.Open("R:\Workbook2.xlsx")
Set ws2 = wb2.Worksheets("Sheet2")

'Copy Value of wb1.ws1 and paste into wb2.ws2
ws1.Range("A1").Copy ws2.Range("A1")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...