【发布时间】:2021-08-08 01:15:26
【问题描述】:
我在一个 Excel 工作簿中有一个公式,它从另一个工作簿中提取数据作为宏的一部分。这两个工作簿位于同一个文件夹中。但是,我计划与其他人共享该文件夹,以便他们可以利用我的宏来运行报告。如果其他用户打开这些文件,VBA 代码会自动更新到新用户保存文件夹的位置吗?
如果没有,我可以编写一个脚本来自动更新文件路径吗?或者至少有一种方法可以让不了解 VBA 的用户轻松更新宏,以便它在他们的 PC 上运行?
这是我的公式:
"=IFERROR(IF(RC[-12]=""Adjustment"",VLOOKUP(R[-1]C[-11],'C:\Attendance Audits FINAL\Test Final Package\Kronos Only\[Kronos Adjustment.xlsx]Sheet1'!R2C1:R531C3,3,FALSE)-R[-1]C[-1],""""),0)"
我自己并不是真正的 VBA 专家,但我最初的想法是定义一个包含文件路径的变量,这样用户只需更改变量的名称。
dim FP as string
FP = 'C:\Attendance Audits FINAL\Test Final Package\Kronos Only\
那么我的公式就变成了:
"=IFERROR(IF(RC[-12]=""Adjustment"",VLOOKUP(R[-1]C[-11],FP[Kronos Adjustment.xlsx]Sheet1'!R2C1:R531C3,3,FALSE)-R[-1]C[-1],""""),0)"
我不确定这是否可行。任何想法将不胜感激!
【问题讨论】:
-
你为什么不分享你的代码,单元格的地址,以及代码运行后应该在单元格中的excel公式?
-
您可以通过将这两个文件复制到本地驱动器上的不同文件夹来轻松测试自己...请参阅:support.microsoft.com/en-us/topic/…“如果链接文件和源数据文件位于同一文件夹中, 只存储文件名”
-
@VBasic2008 我在问题中包含的代码还不够吗?这包括在代码运行后生成公式的代码
-
@TimWilliams 所以如果我理解正确,如果两个工作簿都在同一个文件夹中,我可以在公式中使用
=[book.xlsx]Sheet1!而不是fullpath[book.xlsx]Sheet1!来引用另一个?跨度> -
好像是这样,是的。