无法设置范围 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 错误。
- 当我手动输入公式时,它起作用了。
- 公式少于 255 个字符,没有替换变通,所以我没有犯任何错误
- 我只是将公式输入到单个单元格中
以上是我通过 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))))"
全部:
我觉得这是一件很明显的事情,但我一直在用头撞墙,似乎找不到解决办法。
在“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 错误。
- 当我手动输入公式时,它起作用了。
- 公式少于 255 个字符,没有替换变通,所以我没有犯任何错误
- 我只是将公式输入到单个单元格中
以上是我通过 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))))"