在 Excel VBA 的公式中使用变量

Using a variable in a formula in Excel VBA

我正在编写的一段代码有问题。我已经创建了一个“父”工作簿,它将被多个用户用作一些基本报告的基础。此工作簿创建了 VBA 个子工作簿。然后,最终用户在这些子工作簿中输入值,这些值汇总到父工作簿中。

但是,我在公式中使用变量时遇到了问题。如果我使用诸如 (eg)

之类的公式
ActiveCell.Formula = “=S:\ThisIs\AnExample\FilePath\Name.xlsx”

那么公式就可以正常工作了。然而,我需要做的是改变路径,让上面例子中的“Name”实际上是一个变量(fname,这是一个全局[string]变量)。

我想

ActiveCell.Formula = “=S:\ThisIs\AnExample\FilePath\”& fname&”.xlsx”

(在相关位置加上几个括号)就可以了,因为这似乎是我在类似问题的答复中推荐的——但我已经尝试了上述括号的各种排列, none 其中会做我想做的事。

为了安全起见,您可以声明 "Dim fname As String" 并仔细检查 fname 以确保它已从扩展名中删除并且通常被正确修剪。

我想说,如果可以的话,使用硬编码路径而不是映射路径会更可靠。如果登录脚本未能将相同的驱动器号映射到存储资源的特定网络路径,它将防止出现问题。