我试图使用VBA在Excel工作表中动态添加公式。发生了一件非常奇怪的事情。通过使用"&"将字符串的各个组件链接在一起动态创建公式时,它会给出运行时错误"1004":应用程序定义或对象定义的错误。
这是有效的(但产生错误的公式(:
Worksheets("Sheet1").Cells(row, 7).Value = "=BDP(f" & row & ":Security Name)"
这是不起作用的(产生上述错误(:
Worksheets("Sheet1").Cells(row, 7).Value = "=BDP(f" & row & ";Security Name)"
请注意,唯一的区别是安全名称前面的":"变成了";"。
知道为什么会产生此错误吗?
此外,"Security Name"也应该在引号之间,但是当我将引号加倍或使用 & Chr(34( 时,我再次收到相同的错误。
我正在寻找的是一个要添加到单元格中的公式,如下所示 =BDP(F4:"安全名称"(
感谢您的帮助!
如果你想在实际公式中有一个;
,你需要在你正在使用的字符串中使用一个,
。
此外,如果您在字符串中写入此""
,则会导致字符串"
所以这个在你的 VBA 中:
.Formula = "=BDP(f" & Row & ",""Security Name"")"
将导致您的实际单元格中出现这种情况:
=BDP(F5;"Security Name")
(对我来说,行是5(
(您也可以改为设置.Value
属性,但由于您正在设置公式,我建议使用.Formula
(
编辑:
我使用的方法,在评论中提到:
Sub test()
BBCode = "XS0357495513 Corp"
Sheets(1).Range("A1").Formula = "=BDP(""" & BBCode & """,""Security Name"")"
'Range("A1") is like Cells(1, 1)
End Sub