excel - 使用 Excel VBA 从不同工作簿引用索引/匹配公式中的文件路径变量

标签 excel vba variables match formula

再会,

我正在尝试使用 Excel VBA 在索引/匹配公式中引用文件路径变量。
一切都符合索引/匹配公式,我认为文件路径和工作表引用是问题所在。
目前,它给出错误“运行时错误'1004':应用程序定义或对象定义错误”

这只是代码的一部分,因为这个宏发生了很多事情,我必须为 8 个不同的文件做同样的事情,这些文件具有不同的名称和不同的工作表名称。不同的人会使用宏,主文件将位于不同的文件夹中,因此我必须为文件路径和工作表添加变量。

我已经阅读了许多试图找到解决方案的帖子。很多人建议使用 间接间接.ext 函数/公式,但显然与 间接.ext 你必须启用一个附加组件,我不能这样做,因为许多不同的人会使用这个宏。和 间接显然是易变的。由于该公式将用于至少 8 个不同的列和超过 50 000 行,因此对于处理时间而言,这似乎不是一个好主意。

在此公式运行之前,将使用代码打开外部工作簿。

这是索引/匹配公式的代码部分。

Dim path As String
Dim StoreFile As String
Dim StoreFileF As String

path = GetFolder()

StoreFile = Dir(path & "\*Store and Format*.xls*")
StoreFileF = path & "\" & StoreFile

With ws.ListObjects("Table_SDCdata")
    With .ListColumns.Add
        .Name = "Region"
    End With
    .ListColumns("Region").DataBodyRange.Formula = "=INDEX('[" & StoreFileF & "]Worksheet[1]'!F:F,MATCH([@Site],'[" & StoreFileF & "]Worksheet[1]'!A:A)0,1)"
End With

任何建议或帮助将不胜感激。

最佳答案

方括号仅文件名

    path = "c:\path\to\file"
    file = "My Workbook.xlsx"
    sheetname = "Sheet Name"

    ref = path & "\[" & file & "]" & sheetname
    sFormula = "=INDEX('" & ref & "'!$F:$F,MATCH([@Site],'" & ref & "'!$A:$A,0),1)"
    Debug.Print sFormula

    With ws.ListObjects("Table_SDCdata")
    With .ListColumns.Add
        .Name = "Region"
    End With
        .ListColumns("Region").DataBodyRange.Formula = sFormula
    End With

关于excel - 使用 Excel VBA 从不同工作簿引用索引/匹配公式中的文件路径变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60870761/

相关文章:

ios - “__block变量”内存管理的规则是什么?

variables - TCL regsub 到变量?

c# - 在 Visual Studio 中,是否可以添加一个加载项程序集作为对解决方案中另一个程序集的引用?

java - Apache POI 样式应用于所有单元格

vba - 无效使用属性(property)?

vba - 随单元格 Interior.Color 随机改变颜色

python 在列中搜索一个字符串,并从同一行返回另一个列值

excel - 如何在不使用其他软件的情况下将 SSIS 导出到 Microsoft Excel?

excel - 根据另一个单元格范围的值创建对一个单元格范围的注释

jquery - 更改已设置的变量值