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

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

Option Explicit

Sub test()

Dim pLWB As Workbook
Dim pLWS As Worksheet

Set pLWB = ActiveWorkbook
Set pLWS = ActiveSheet

Workbooks.Add

pLWB.pLWS.range("A1").copy

End Sub

Любые идеи, где я иду не так? У меня сложилось впечатление, что вы можете ссылаться на очень конкретные ячейки с помощью workbooks.worksheets.range но даже когда я печатал, в меню intellisense не отображалась pLWS .

Заранее спасибо за ваше время.

1 ответ1

1

Вы должны ссылаться на лист по-другому - это только одна из тех вещей.

Option Explicit

Sub test()

Dim pLWB As Workbook
Dim pLWS As Worksheet

Set pLWB = ActiveWorkbook
Set pLWS = pLWB.ActiveSheet

Workbooks.Add

pLWS.Range("A1").Copy

End Sub

Также это работает -

Option Explicit

Sub test()

Dim pLWB As Workbook
Dim pLWS As String

Set pLWB = ActiveWorkbook
 pLWS = ActiveSheet.Name

'Workbooks.Add

pLWB.Sheets(pLWS).Range("A1").Copy

End Sub

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