根据匹配公共变量的字典值打开文件

时间:2018-11-05 00:45:39

标签: vba dictionary

我有一个excel文件,在第1列中列出了与不同工作簿相关的代码。

首先,我创建了一个循环浏览代码的代码,并使用“ Application.GetOpenFilename”手动打开了特定的工作簿。

现在,我决定提高效率,并且由于文件路径没有改变,所以我想使用文件路径位置创建一个全局公共变量。

我创建了一个字典,其中添加了所有代码。 (这是2到50之间的循环)Cells(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

0 个答案:

没有答案