将“:”更改为“;”时,运行时错误VBA

我试图dynamic地添加使用VBA的Excel工作表中的公式。 事情真的很奇怪。 当通过使用“&”链接string的各种组件来dynamic创build公式时,会给出运行时错误“1004”:应用程序定义的错误或对象定义的错误。

这是工作(但产生错误的公式):

Worksheets("Sheet1").Cells(row, 7).Value = "=BDP(f" & row & ":Security Name)" 

这是行不通的(产生上面提到的错误):

 Worksheets("Sheet1").Cells(row, 7).Value = "=BDP(f" & row & ";Security Name)" 

请注意,唯一的区别是安全名称前面的“:”变成了“;”。

任何想法,为什么这是产生这个错误?

另外,“安全名称”也应该在引号之间,但是当我将双引号引起来,或者使用&Chr(34)时,我又得到同样的错误。

我正在寻找的是一个公式被添加到单元格看起来像这样= BDP(F4:“安全名称”)

感谢您的帮助!

如果你想要一个; 在实际的公式中,你需要使用一个,你正在使用的string。

另外,如果你在string中写入这个"" ,它将导致你的string"

所以这个在你VBA:

.Formula = "=BDP(f" & Row & ",""Security Name"")"

将导致你在这个实际的单元格中:

=BDP(F5;"Security Name") (对我来说,Row是5)

(你也可以设置.Value属性,但是因为你正在设置一个公式我build议使用.Formula

编辑:

我使用的方法,在评论中提到:

 Sub test() BBCode = "XS0357495513 Corp" Sheets(1).Range("A1").Formula = "=BDP(""" & BBCode & """,""Security Name"")" 'Range("A1") is like Cells(1, 1) End Sub