使用VBA将公式插入单元格:对象定义的错误

我试图在我的VBA代码中使用这个:

ActiveSheet.Range("A1:A1:).Formula = "='Sheet1'!A1" & Chr(34) & Chr(47) & Chr(34) & "'Sheet1'!A2" 

这给我错误:1004,对象定义的错误。

我希望在单元格公式中看到:

= '工作表Sheet1'!A1 “/” '工作表Sheet1'!A2

如果A1单元格的值为10,A2值为20,则单元格值应该如下所示: 10/20

可能是什么问题?

首先,你在Range内有一个冒号,而不是一个语音标记。 你可以尝试像这样:

 ActiveSheet.Range("A1").Value = Sheet("Sheet1").Range("A1").Value & "/" & Sheet("Sheet1").Range("A2").Value 

我也build议尽可能不使用ActiveSheet ,也参考参考中的工作簿。 如果要引用包含VBA代码的工作簿,则可以使用ThisWorkbook

我假设你想要公式要么读:

='Sheet1'!A1&"/"&'Sheet1'!A2 (so:A1和A2之间用“/”连接)

要么

='Sheet1'!A1/'Sheet1'!A2 (so:将A1除以A2的结果)

检查公式的结果:它不产生任何:)(它导致一个无效的公式)而且,如约旦回答,您的VBA使用冒号而不是双引号。

更新 (阅读你问你的问题,并添加一个解决scheme的文本串联的事实)

最好在debugging器(F8)中通过VBA来检查公式build立的结果:它会生成一个无效的公式,当您尝试设置Excel时,毫无疑问会给您一个错误。 结果不包含任何&字符来连接A1和A2的值与之间的“/”。

正确的公式应该是:

 ='Sheet1'!A1&"/"&'Sheet1'!A2 

这是通过:

 ActiveSheet.Range("A1").Formula = "='Sheet1'!A1&""/""&'Sheet1'!A2" 

(注意,你可以通过加倍的方式在VBAstring中embedded一个“;在这种情况下,读取比使用Chr(34)更清晰)