尝试使用 vba 插入索引匹配公式时出现类型不匹配错误?

Type Mismatch error when trying to insert index match formula using vba?

我正在尝试使用 vba 插入以下带通配符的索引匹配公式,如下所示:

Cells(i, 13) = "=IFERROR(INDEX(Contacts!$C:$C,MATCH(" * " & Range(""C"" & i).Value & " * ",Contacts!$B:$B,0)),"""")"

出于某种原因,我收到类型不匹配错误。请有人告诉我我做错了什么吗?

编辑:

Cells(i, 13).Formula = "=IFERROR(INDEX(Contacts!$C:$C,MATCH(""*"" & """ & Range("G" & i).value & """ & ""*"",Contacts!$B:$B,0)),IFERROR(INDEX(Contacts!$C:$C,MATCH(""*"" & LEFT(""" & Range("G" & i).value & ,7) """ & ""*"",Contacts!$B:$B,0)),""""))"

使用

Cells(i, 13).Formula = "=IFERROR(INDEX(Contacts!$C:$C,MATCH(""*" & Range("C" & i).Value & "*"",Contacts!$B:$B,0)),"""")"

就像你放四个双引号得到两个一样,你需要放两个才能得到一个:

Cells(i, 13).Formula = "=IFERROR(INDEX(Contacts!$C:$C,MATCH(""*"" & """ & Range("C" & i).Value & """ & ""*"",Contacts!$B:$B,0)),"""")"

你需要指定它是一个公式 .Formula :

Cells(i, 13) = "=IFERROR(INDEX(Contacts!$C:$C,MATCH(""*" & Range("C" & i).Value & "*"",Contacts!$B:$B,0)),"""")"

此外,您的代码无法正确识别您的范围 (""C"")

在活动表的 C5 中 abc

Dim i As Long
i = 5
With ActiveSheet
    .Cells(i, 13).Formula = "=IFERROR(INDEX(Contacts!$C:$C,MATCH("" * " & .Cells(i, "C").Value & " * "",Contacts!$B:$B,0)),"""")"
End With

这将产生公式,

=IFERROR(INDEX(Contacts!$C:$C,MATCH(" * abc * ",Contacts!$B:$B,0)),"")

...在 M5 中。我不是很清楚你是否需要环绕空间。