我试图在我的VBA代码中使用它:
ActiveSheet.Range("A1:A1:).Formula = "='Sheet1'!A1" & Chr(34) & Chr(47) & Chr(34) & "'Sheet1'!A2"
这给了我错误:1004,对象定义的错误。
我希望在细胞公式中看到:
='工作表Sheet'!A1" /"'工作表Sheet'!A2
如果A1单元格的值为10且A2值为20,则单元格值应如下所示: 10/20
可能是什么问题?
答案 0 :(得分:1)
我假设您希望公式为:
='Sheet1'!A1&"/"&'Sheet1'!A2
(所以:A1和A2的文字串联,中间有“/”)
或
='Sheet1'!A1/'Sheet1'!A2
(所以:将A1除以A2的结果)
检查公式的结果:它既不会生成:)(导致公式无效)而且,正如Jordan回答的那样,你的VBA使用了冒号而不是双引号。
更新(请仔细阅读您在问题中要求进行文字连接,并添加解决方案的事实)
最好在使用调试器(F8)逐步调试VBA时检查公式构建的结果:它会生成一个无效的公式,当您尝试设置它时Excel无疑会给您一个错误。结果不包含任何&
个字符来连接A1和&的值。 A2与“/”之间。
正确的公式应该是:
='Sheet1'!A1&"/"&'Sheet1'!A2
这是通过以下方式实现的:
ActiveSheet.Range("A1").Formula = "='Sheet1'!A1&""/""&'Sheet1'!A2"
(请注意,您可以通过加倍在一个VBA字符串中嵌入“;在这种情况下,读取比使用Chr(34)更清晰”
答案 1 :(得分:0)
首先,Range
中有一个冒号而不是一个语音标记。你可以尝试类似的东西:
ActiveSheet.Range("A1").Value = Sheet("Sheet1").Range("A1").Value & "/" & Sheet("Sheet1").Range("A2").Value
我还建议尽可能不使用ActiveSheet
,并参考参考资料中的工作簿。如果要引用包含VBA代码的工作簿,可以使用ThisWorkbook
。