通过VBA插入公式,参考另一张不起作用的表格。需要解决方法

时间:2016-06-30 12:00:54

标签: excel vba excel-vba excel-formula formulas

我创建了一个脚本,如果在两个文档中找到相同的值,则将两个不同工作表中的列进行比较。

我这样做是通过VBA将公式插入两个文件之一。

公式: =IF(ISNA(MATCH(A1;'[Filename]SheetName'!$B:$B;0));"NO MATCH","MATCH")

问题是,如果SheetName不是Sheet(insert number here),那么脚本就不会运行。我不知道为什么它不能识别表格,但我需要一个解决方法。

VBA脚本:

Formula1 = "=IF(ISNA(MATCH(" & Chr(col1 + 64) & MyCell1 & ",'[" & fi2 & "]" & SheetName & "'!$" & Chr(col3 + 64) & ":$" & Chr(col3 + 64) & ",0)),""NO MATCH"",""MATCH"")"

Formula2 = "=IF(" & Chr(col1 + 65) & MyCell1 & "=""NO MATCH"",""-"",IF(INDEX('[" & fi2 & "]" & SheetName & "'!$" & Chr(col4 + 64) & ":$" & Chr(col4 + 64) & ",MATCH(" & Chr(col1 + 64) & MyCell1 & ",'[" & fi2 & "]" & SheetName & "'!$" & Chr(col3 + 64) & ":$" & Chr(col3 + 64) & ",0))=" & Chr(col21 + 63) & MyCell1 & ",""MATCH"",""NO MATCH""))"

With Range(myRange1)

        .NumberFormat = "General"
        .Value = Formula1
        .Value = .Value
        .HorizontalAlignment = xlCenter
        .ColumnWidth = 27

End With

With Range(myRange2)

        .NumberFormat = "General"
        .Value = Formula2
        .Value = .Value
        .HorizontalAlignment = xlCenter
        .ColumnWidth = 27

End With

1 个答案:

答案 0 :(得分:0)

如果SheetNameWorkSheet,那么在您的公式中,您应该写SheetName.Name 另外,我不确定工作簿和工作表名称之前和之后的'