Vba 错误';1004无法设置range类的formulaarray属性

Vba 错误';1004无法设置range类的formulaarray属性,vba,excel,Vba,Excel,在此之前,这可能会被删除作为一个重复的职位,我已经阅读了所有其他职位,并尝试了解决办法 ActiveSheet.Cells(2, b + 5).Select Selection.FormulaArray = "=IF(AND(AY2=""Yes"",BF2=""Unsure""),TEXTJOIN(""|"", TRUE, IF(BE2=Data!H:H, Data!I:I, TEXT("",""))),""N/A""))" 我还尝试(从文本(“,”)中删除“): 我已经在Excel中

在此之前,这可能会被删除作为一个重复的职位,我已经阅读了所有其他职位,并尝试了解决办法

ActiveSheet.Cells(2, b + 5).Select
    Selection.FormulaArray = "=IF(AND(AY2=""Yes"",BF2=""Unsure""),TEXTJOIN(""|"", TRUE, IF(BE2=Data!H:H, Data!I:I, TEXT("",""))),""N/A""))"
我还尝试(从文本(“,”)中删除“):


我已经在Excel中手动使用了这个公式,它可以工作。这个公式远远少于255个字符,所以我认为这是语法/公式错误?不确定,因为它在Excel中工作。

您使用的
TEXT(“,”)
TEXT(,)
不要向右看。
文本
需要两个参数:一个数字和一个格式代码。如果要插入逗号,请尝试
,“
。如果要格式化
数据!I:I
,请尝试
文本(数据!I:I,格式代码)
。如果要插入空字符串,请尝试
。如果您在Excel中手动使用了公式本身,并且它按照您所说的那样工作,则在即时窗口中运行此操作,并选择公式所在的单元格
?Selection.FormulaArray
。它将以正确的VBA语法打印公式,您可以将公式复制/粘贴到VBE。@xidgel
文本(,)
返回一个空字符串。在这个网站上,有些人更喜欢在公式中使用它。”。你的公式末尾有一个太多的
。正如@ScottCraner指出的,我在公式末尾有一个太多的
)。愚蠢的错误。仅供参考,您可以删除文本(“,”)周围的“”,它将起作用。所以我用文字(,)谢谢大家!
ActiveSheet.Cells(2, b + 5).Select
    Selection.FormulaArray = "=IF(AND(AY2=""Yes"",BF2=""Unsure""),TEXTJOIN(""|"", TRUE, IF(BE2=Data!H:H, Data!I:I, TEXT(,))),""N/A""))"