Я использую следующий код 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") продолжает меняться, я сейчас делаю вручную, но я хочу назначить из ячейки на листе. Как мне это сделать?

1 ответ1

0

Я хочу назначить имя рабочего листа, указанное в другой ячейке 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

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