Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用代码从字符串中插入单元格公式_Excel_Vba_Excel Formula - Fatal编程技术网

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,我已经编辑了你在这里提到的答案。