如何使用打开文件时不会更改的唯一标识符在 VBA 中引用外部工作簿?当包含完整文件路径并且没有打开同名文件时,它可以正常工作。但是,当打开文件时,带有文件路径的完整表单不起作用,单独的文件名也不起作用。
我想创建一个更新 Sub 来更新所有引用,如果电子表格打开,这会自行搞砸(请参阅下面的第 2 点)。
以下是我认为应该可行的一些原因:
- 似乎在手动链接更新菜单中只有文件名可供参考;
- 也无法打开两个具有相同名称的工作簿,因此如果您打开源链接,则单元格引用会从文件路径更改为文件名(这正是导致问题的原因。
这是我目前拥有的代码,它updCellRef
是对文件路径的单元格引用(我只想使用文件名):
Sub updateValues(updCellRef)
updFilePath = ActiveWorkbook.Sheets("INPUTS").Range(updCellRef).Value
ActiveWorkbook.updateLink Name:=updFilePath, Type:=xlExcelLinks
End Sub
为了澄清这个问题,当我使用上述函数更新值时,当源电子表格打开时,它仅由其文件名引用。当它关闭时,它被其完整的文件路径引用。
我正在使用带有 VBA v7.0 的 Excel Professional 2010 v14
注意:我不想使用任何其他软件,包括 Power Query,因为没有管理员权限就无法安装。