Обратитесь к динамической книге - PullRequest
0 голосов
/ 23 ноября 2018

Каждый день я открываю файл с сегодняшней датой в имени файла для получения данных.

Я помещаю данные в другую рабочую книгу с сегодняшней датой в имени файла.

У меня естьЯ дошел до того, что у меня Excel открывает первый файл на основе текущей даты, но у меня возникают проблемы при переключении между обеими рабочими книгами, так как имя файла меняется каждый день.

В одной из рабочих книг у меня есть чтоимя файла будет сегодня, например, Reporting Status_23-Nov-2018, а формула, которую я написал, обновит имя до Reporting Status_24-Nov-2018 завтра.Я пытался определить переменную, которая будет значением ячейки с именем отчета, чтобы я мог сказать VariableName.activate.Я бы сделал то же самое для второй книги.

У меня есть следующий код:

Dim BLREOD as workbook
Dim Midday as workbook
. 
. 
. 
BLREOD = activeworkbook.sheets("sheet name").range("X4").Value
Midday = activeworkbook.sheets("sheet name").range("X7").Value

Где X4 и X7 имеют имя файла на сегодня.

Это не работает, и я не смог ничего найти, объявив переменную книги как значение ячейки, а затем активировав книгу этой переменной.

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете открыть каждую книгу напрямую с помощью Workbooks.Open и использовать 2 ссылки для взаимодействия с ними:

Sub OpenWorkbooks()
    Dim BLREOD As Workbook
    Dim Midday As Workbook

    Dim shParams As Worksheet
    Set shParams = ActiveWorkbook.Sheets("sheet name")

    Dim todayBLREODWBName As String, todayMiddayWBName As String
    todayBLREODWBName = shParams.Range("X4").Value
    todayMiddayWBName = shParams.Range("X7").Value

    Set BLREOD = Workbooks.Open(todayBLREODWBName)
    Set Midday = Workbooks.Open(todayMiddayWBName)

    Midday.Worksheets("Data").Range("A1").Value = BLREOD.Worksheets("Data").Range("A1").Value
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...