VBA для копирования вставить из файла и имя листа, как указано в ячейке excel

Я использую следующий код VBA для копирования данных из закрытого листа excel. имя листа меняется на дату. поэтому я назначаю путь и имя файла из ячейки excel B1. Теперь я застрял только в одном месте. Я хочу присвоить рабочему листу имя, указанное в другой ячейке B2.

Sub GetDataClosedBook()

Dim scr As Workbook
Dim FromPath1 As String


'location of the file and data to copy'

Application.ScreenUpdating = False

FromPath1 = Sheets("Status").Range("B1")

Set scr = Workbooks.Open(FromPath1)

ThisWorkbook.Activate

Worksheets("Today_BC").Range("B1:P40000").Formula = scr.Worksheets("12SEP2018").Range("A1:O40000").Formula
Workbooks(2).Close

Application.ScreenUpdating = True
ActiveWorkbook.Save 

End Sub

теперь ("12Sep2018") продолжает меняться, я вручную делаю прямо сейчас, но я хочу назначить из ячейки на листе. Как я могу это сделать?

16
задан Ahmed Ashour
08.03.2023 7:34 Количество просмотров материала 2364
Распечатать страницу

1 ответ

Я хочу присвоить рабочему листу имя, указанное в другой ячейке B2

если да, то необходимо заменить строковый литерал имени листа "12SEP2018" со значением ячейки, в которой хранится нужное имя листа. то есть

Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets("12SEP2018").Range("A1:O40000").Formula

нужно заменить на

Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets(Sheets("Status").Range("B2").Value).Range("A1:O40000").Formula

или сохраните имя целевого листа в переменной:

StoreTo = Sheets("Status").Range("B2").Value
Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets(StoreTo).Range("A1:O40000").Formula
0
отвечен Akina 2023-03-09 15:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх