尝试使用vba插入索引匹配公式时types不匹配错误?

我试图插入下面的索引匹配公式与通配符使用vba像这样:

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

出于某种原因,我得到一个types不匹配的错误。 请有人能告诉我我做错了什么?

编辑:

 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“”)没有正确识别您的代码

对于activesheet的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。 我不完全清楚你是否想要包装空间。