在IF公式中引用工作簿variables

我有一个macros比较两个工作簿之间的数字,并输出如果是正确的或不正确的。 其中一个工作簿被存储为一个variables,因为它上个月引用了它的名字。

Dim wb As Workbook Set wb = Workbooks("Monthly Life Management Report " & Format(DateAdd("m", -1, Date), "mmmm yyyy") & ".xlsm") 

运行macros的最后一部分时出现应用程序或对象定义的错误。

  Range("E8").Select ActiveCell.FormulaR1C1 = _ "=IF([wb]'2 Claims'!R8C5 =[Template.xlsx]Claims!R8C5,""Correct"",""Incorrect"")" 

整个脚本

 Sub Monthly_Life_Management() Dim thisWb As Workbook Set thisWb = ActiveWorkbook Workbooks.Add ActiveWorkbook.SaveAs Filename:=thisWb.Path & "\Validation_File_" & Format(Date, "dd mm yy") & ".xls" Dim wb As Workbook Set wb = Workbooks("Monthly Life Management Report " & Format(DateAdd("m", -1, Date), "mmmm yyyy") & ".xlsm") 'Claims Tab wb.Activate Sheets("2 Claims").Select Range("C2:C13").Select Application.CutCopyMode = False Selection.Copy Windows("Validation_File_" & Format(Date, "dd mm yy") & ".xls").Activate Range("C2").Select ActiveSheet.Paste wb.Activate Sheets("2 Claims").Select Range("D2:D13").Select Application.CutCopyMode = False Selection.Copy Windows("Validation_File_" & Format(Date, "dd mm yy") & ".xls").Activate Range("D2").Select ActiveSheet.Paste wb.Activate Sheets("2 Claims").Select Range("E7:G7").Select Application.CutCopyMode = False Selection.Copy Windows("Validation_File_" & Format(Date, "dd mm yy") & ".xls").Activate Range("E7").Select ActiveSheet.Paste 'Counts Range("E8").Select ActiveCell.FormulaR1C1 = _ "=IF('[wb]2 Claims'!R8C5 ='[Template.xlsx]Claims'!R8C5,""Correct"",""Incorrect"")" Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 

您需要调整'工作簿参考'中的'

 "=IF('[wb]2 Claims'!R8C5 =[Template.xlsx]Claims!R8C5,""Correct"",""Incorrect"")" 

编辑:根据你的add'l代码,你有wb作为variables。 试试这个

 "=IF('[" & wb.Name & "]2 Claims'!R8C5 =[Template.xlsx]Claims!R8C5,""Correct"",""Incorrect"")" 

(注意:你可能需要也可能不需要.Name