Excel 使用代码从字符串中插入单元格公式
我有一个嵌套循环,它生成一个字符串,如下所示:Excel 使用代码从字符串中插入单元格公式,excel,vba,excel-formula,Excel,Vba,Excel Formula,我有一个嵌套循环,它生成一个字符串,如下所示: worksheet1!E3;worksheet1!E33;worksheet1!E63;worksheet2!E3;worksheet2!E33;worksheet2!E63; 我需要将此字符串作为公式的一部分传递给指定的单元格。最后的公式应该是:=SUM() 我得到: 运行时错误“1004”应用程序定义或对象定义错误 我的代码如下所示: worksheet1!E3;worksheet1!E33;worksheet1!E63;worksheet
worksheet1!E3;worksheet1!E33;worksheet1!E63;worksheet2!E3;worksheet2!E33;worksheet2!E63;
我需要将此字符串作为公式的一部分传递给指定的单元格。最后的公式应该是:=SUM()
我得到:
运行时错误“1004”应用程序定义或对象定义错误
我的代码如下所示:
worksheet1!E3;worksheet1!E33;worksheet1!E63;worksheet2!E3;worksheet2!E33;worksheet2!E63;
Dim查询为字符串
query=“工作表1!E13;工作表1!E43;”
工作表(“示例”)。激活
范围(“A1”)。公式=“=SUM(“+query+”)”
错误发生在示例代码的最后一行。希望这对您有所帮助。它对我起了作用。只需使用
逗号
而不是分号
因此,例如,如果用户具有法国地区设置
,该设置具有列表分隔符
保存一个文件,然后用户使用带有列表分隔符的US regional settings
,打开同一个文件,Excel将自动调整公式中的法语列表分隔符
但是,在编写VBA时,列表分隔符需要使用US English
惯例,即逗号。或者您可以使用FormulaLocal
[编辑]:
相反,您可以直接使用本地公式,使用FormulaLocal
例如(SUM
在法语公式中是SOMME
)
Range(“A1”).FormulaLocal=“=Somme(A2;A5)”
VBA似乎是对的,我将更新问题。如果变量类型相同,则可以通过两种方式连接字符串,在本例中,它们是相同的。我知道字符串中的最后一个分号,但我尝试删除它,但似乎没有任何效果。谢谢你的回答。我实际上找到了解决问题的方法,我需要使用FormulaLocal而不是Formula,并使用我的本地语言来传递求和函数。这有点奇怪,因为公式函数应该完全采用英文函数。谢谢@MiikaOK,我已经编辑了你在这里提到的答案。