在Excel VBA中的公式中使用变量

在Excel VBA中的公式中使用变量,excel,vba,variables,module,Excel,Vba,Variables,Module,我正在写的一段代码有问题。我创建了一个“家长”工作簿,多个用户将使用该工作簿作为一些基本报告的基础。此工作簿通过VBA创建多个子工作簿。最终用户然后在这些子工作簿中输入值,这些值在父工作簿中聚合 但是,我在公式中使用变量时遇到了问题。如果我使用一个公式,如(eg) 那么这个公式就行了。但是,我需要做的是更改路径,以便上面示例中的“Name”实际上是一个变量(fname,它是一个全局[string]变量) 我的想法是 ActiveCell.Formula = “=S:\ThisIs\AnExamp

我正在写的一段代码有问题。我创建了一个“家长”工作簿,多个用户将使用该工作簿作为一些基本报告的基础。此工作簿通过VBA创建多个子工作簿。最终用户然后在这些子工作簿中输入值,这些值在父工作簿中聚合

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

那么这个公式就行了。但是,我需要做的是更改路径,以便上面示例中的“Name”实际上是一个变量(fname,它是一个全局[string]变量)

我的想法是

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

(在相关的地方有几个括号)会起作用,因为这似乎是我在对类似问题的回答中所建议的——但我已经尝试了上述括号的各种排列,没有一种会起到我想要的作用。

为了安全起见,你可以声明“Dim fname as String”并再次检查fname,确保其从扩展中剥离,并且通常正确修剪

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

您发布的示例有什么问题?如果为
fname
分配了一个字符串,那么
“=YourPath”&fname&“.xlsx”
没有理由不起作用。感谢您的快速响应。当我尝试运行代码时,我得到了这个错误…运行时错误“1004:应用程序定义的或对象定义的错误”。这有帮助吗?你能用相关代码更新你的问题吗?请告诉我错误发生在哪一行?我刚刚解决了这个问题,我不知道怎么解决。继续你的评论,它应该工作,我只是复制代码,删除它,粘贴它再次在,它的工作!我不知道为什么它突然决定工作。谢谢你的帮助,我感谢你所花的时间。(真的,我应该说是你帮我解决的)。
ActiveCell.Formula = “=S:\ThisIs\AnExample\FilePath\”& fname&”.xlsx”