使用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)更清晰)