Excel 使用宏插入查找公式

Excel 使用宏插入查找公式,excel,vba,excel-formula,Excel,Vba,Excel Formula,我正在尝试使用下面的宏代码将If公式插入单元格C2。我一直在犯错误 应用程序未定义 声明: Worksheets("Dup Warnings").Range("C2").Formula = _ "=IF(A2="","",IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE),"")=""New"",Sheet1!$G$2,IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE),"

我正在尝试使用下面的宏代码将If公式插入单元格C2。我一直在犯错误

应用程序未定义

声明:

Worksheets("Dup Warnings").Range("C2").Formula = _
    "=IF(A2="","",IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE),"")=""New"",Sheet1!$G$2,IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE),"")=""Review"",sheet1!$G$3,IF(IFERROR(VLOOKUP(A2,'New Appt Type Mapping'!A:J,2,FALSE),"")=""New"",Sheet1!$G$2,IF(IFERROR(VLOOKUP(A2,'New Appt Type Mapping'!A:J,2,FALSE),"")=""Review"",Sheet1!$G$3,"")))))"

公式有什么问题吗?

您将文本字符串文字周围的所有引号加倍,但对于用作iferror默认值的零长度字符串则没有

您可以选择文本,而不是将长度为零的字符串加倍,这会产生相同的结果,并且可能不会让眼睛感到困惑

Worksheets("Dup Warnings").Range("C2").Formula = _
  "=IF(A2=text(,), text(,), IF(IFERROR(VLOOKUP(A2, 'Appt Type Mapping'!A:J, 2, FALSE), text(,)) = ""New"", Sheet1!$G$2, IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE), text(,))=""Review"", sheet1!$G$3, IF(IFERROR(VLOOKUP(A2,'New Appt Type Mapping'!A:J,2,FALSE), text(,))=""New"", Sheet1!$G$2, IF(IFERROR(VLOOKUP(A2,'New Appt Type Mapping'!A:J,2,FALSE), text(,))=""Review"",Sheet1!$G$3, text(,))))))"

公式中的空双引号需要加倍:

Worksheets("Dup Warnings").Range("C2").Formula = "=IF(A2="""","""",IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE),"""")=""New"",Sheet1!$G$2,IF(IFERROR(VLOOKUP(A2,'Appt Type Mapping'!A:J,2,FALSE),"""")=""Review"",sheet1!$G$3,IF(IFERROR(VLOOKUP(A2,'New Appt Type Mapping'!A:J,2,FALSE),"""")=""New"",Sheet1!$G$2,IF(IFERROR(VLOOKUP(A2,'New Appt Type Mapping'!A:J,2,FALSE),"""")=""Review"",Sheet1!$G$3,"""")))))"

一条长长的单行线我解决了这个问题,但仍然得到同样的错误