我一直在努力将公式键入到工作表的单元格中。这是我的活动表(肯定)。
源是具有完整路径的文件。工作表名称是...,而lta_col_letter是我在其中输入公式的列字母。
ActiveSheet.Range(lta_col_letter & 2).Formula = "=IFERROR(INDEX('[" & Source & "]...'!$G:$G,MATCH(" & versionref_col_letter & "2,'[" & Source & "]...'!$B:$B,0))," & Chr(34) & Chr(34) & ")"
我不确定为什么会出现此错误。请帮忙!
编辑: 当我添加缺少的[括号时有效,但是当它进入单元格时,它将在工作表名称之后和单元格引用之前再次添加文件名。在msgbox中看起来不错。
答案 0 :(得分:0)
好像您在 source 周围缺少一些方括号。
ActiveSheet.Range(lta_col_letter & 2).Formula = "=IFERROR(INDEX('[" & source & "]...'!$G:$G,MATCH(" & versionref_col_letter & "2,'[" & source & "]...'!$B:$B,0)), text(,))"
要检查这些类型的错误,请将'
放在开头的=
之前,然后运行将公式作为字符串放入单元格的过程。转到工作表并进行外观检查,然后尝试删除'
。进行更正,直到有了一个有效的公式,然后将更正转移到VBA公式字符串中。
由于您似乎已使用打开的工作簿将工作簿名称检索到 source 中,因此可以考虑将Range.Address Property与External:= True一起使用,以检索完全标点的外部地址
dim sourceG as string, sourceB as string
sourceG = workbooks(source).worksheets("...").range("G:G").address(external:=true)
sourceB = workbooks(source).worksheets("...").range("B:B").address(external:=true)
ActiveSheet.Range(lta_col_letter & 2).Formula = _
"=IFERROR(INDEX(" & sourceG & ", MATCH(" & versionref_col_letter & "2, " & sourceB
& ",0)), text(,))"