Открыть файл на основе значения словаря, соответствующего публичной переменной - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть файл Excel со списком кодов в столбце 1, относящихся к различным рабочим книгам.

Сначала я создал код, который будет циклически проходить по кодам, и я бы вручную открыл конкретную книгу, используя «Application.GetOpenFilename».

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

Я создаю словарь, который добавляет все коды. (То есть цикл между 2 и 50). Значение в каждой строке ячеек (i, 1) содержит сокращенный код, который затем привязывается к общедоступной переменной с полным путем / местоположением файла. В этом случае все коды в строках со 2 по 50 - это ABC123 (ключ = ABC123). В других случаях у меня есть несколько кодов, поэтому я добавляю в словарь, чтобы сохранить уникальные значения, и затем могу открыть эти отдельные файлы.

Я надеялся пройтись по словарю, чтобы открыть определенные файлы, связанные с кодом, вместо этого он попытался открыть строковое значение, а не путь к файлу. ABC123.xls вместо C: \ Users \ xxxx \ xxxx \ ImportantFile2018.xls

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

Не зацикливайтесь на именах переменных, это всего лишь примеры. Основная проблема заключается в том, как извлечь значение переменной (путь к файлу), когда имя переменной (ABC123) соответствует значению ячейки. Каждое значение ячейки в столбце 1 данных имеет соответствующую переменную с путем к файлу.

Option Explicit
Public ABC123 As String

Sub DefinedVariables()

ABC123 = C:\Users\xxxx\xxxx\ImportantFile2018.xls

End Sub

Sub Reporting_Update()
Dim dictClient As New Scripting.Dictionary
Dim key As Variant

Call DefinedVariables

For i = 2 To 50
    If dictClient.Exists(Cells(i, 1).Value) Then
    Else:
        dictClient.Add Cells(i, 1).Value
    End If
Next

For Each key In dictClient
    Workbooks.Open FileName:=key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...