无法设置范围 Class 的 FormulaArray -- 小于 255,未使用替换方法

Unable to set the FormulaArray of the Range Class -- Less than 255, not using replace method

全部:

我觉得这是一件很明显的事情,但我一直在用头撞墙,似乎找不到解决办法。

在“M3”中输入以下公式时

=IFERROR(IF(ISBLANK(VLOOKUP(A3&"|"&E3,CHOOSE({1,2},OLD_PR!$A:$A4&"|"&OLD_PR!$E:$E4,OLD_PR!$O:$O4),2,FALSE)),"",VLOOKUP(A3&"|"&E3,CHOOSE({1,2},OLD_PR!$A:$A4&"|"&OLD_PR!$E:$E4,OLD_PR!$O:$O4),2,FALSE)),"")

使用此代码 (ActiveCell = "M3")

ActiveCell.FormulaArray = _
        "=IFERROR(IF(ISBLANK(VLOOKUP(A3&" & Chr(34) & "|" & Chr(34) & "&E3,CHOOSE({1,2},OLD_PR!$A:$A$" & OldPRLastRow & "&" & Chr(34) & "|" & Chr(34) & "&OLD_PR!$E:$E$" & OldPRLastRow & ",OLD_PR!$O:$O$" & OldPRLastRow & "),2,FALSE)),""""," _
        & "VLOOKUP(A3&" & Chr(34) & "|" & Chr(34) & "&E3,CHOOSE({1,2},OLD_PR!$A:$A$" & OldPRLastRow & "&" & Chr(34) & "|" & Chr(34) & "&OLD_PR!$E:$E$" & OldPRLastRow & ",OLD_PR!$O:$O$" & OldPRLastRow & "),2,FALSE))," _
        & Chr(34) & Chr(34) & ")"

我在标题中遇到 Run-time 错误。

  1. 当我手动输入公式时,它起作用了。
  2. 公式少于 255 个字符,没有替换变通,所以我没有犯任何错误
  3. 我只是将公式输入到单个单元格中

以上是我通过 google 搜索发现的最常见错误,但不适用于我。我确定这很愚蠢。

任何见解将不胜感激!

参考this试试

    ActiveCell.FormulaArray = _
        "=IFERROR(IF(ISBLANK(VLOOKUP(D3&" & Chr(34) & "|" & Chr(34) & "&E3,""ChoosePart"",2,FALSE)),""""," _
        & "VLOOKUP(D3&" & Chr(34) & "|" & Chr(34) & "&E3,""ChoosePart"",2,FALSE))," _
        & Chr(34) & Chr(34) & ")"
    
    ActiveCell.Replace """ChoosePart""", "CHOOSE({1,2},OLD_PR!$A:$A$" & OldPRLastRow & "&" & Chr(34) & "|" & Chr(34) & "&OLD_PR!$E:$E$" & OldPRLastRow & ",OLD_PR!$O:$O$" & OldPRLastRow & ")"

由于 O 列包含文本值,这里有一个替代方法...

ActiveCell.FormulaArray = "=LOOKUP(REPT(""z"",255),CHOOSE({1,2},"""",INDEX(OLD_PR!$O:$O$" & OldPRLastRow & ",MATCH(A3&""|""&E3,OLD_PR!$A:$A$" & OldPRLastRow & "&""|""&OLD_PR!$E:$E$" & OldPRLastRow & ",0))))"