在一个单元格或单元格区域中将函数添加为数组

时间:2019-02-07 11:47:21

标签: arrays excel vba function

如何使用VBA将配置为数组的公式添加到单元格中?

当我直接在一个单元格中键入函数时,它会将值返回到一系列单元格中。

例如。
在单元格N34中,我输入{= myFunction(“ datacollector”;“ nameOfVariable”;“ startDate”;“ endDate”; TRUE)}
该函数返回单元格N34到P59中的值。

在VBA中,当我创建函数字符串并将其插入到单元格中时,我遇到运行时错误。

我正在创建不带{}以及其他单元格数据的函数字符串。

代码是:

tempStr = "=myFunction(""" & Sheet1.Cells(2,1) & """;""" & Sheet1.Cells(3,1) & """;""" & Sheet1.Cells(4,1) & """;""" & Sheet1.Cells(4,1) & "TRUE" ")"

Sheet1.Cells(34,14).FormulaArray = tempStr
also tried 
Sheet1.Range("N34:P59").FormulaArray = tempStr

我明白了

  

运行时错误'1004'

如果我首先在函数字符串周围添加{}

tempStr = "{=myFunction(""" & Sheet1.Cells(2,1) & """;""" & Sheet1.Cells(3,1) & """;""" & Sheet1.Cells(4,1) & """;""" & Sheet1.Cells(4,1) & "TRUE" ")}"

Sheet1.Cells(34,14).FormulaArray = tempStr

它将结束于单元格中,但会以字符串形式出现,如果我删除了{},该函数将返回预期的值。 (因此该字符串已正确创建。)

0 个答案:

没有答案