2014-03-03 174 views
1

我有以下方法:VLOOKUP多个工作簿 - VBA

Sub vlookup(ByVal row_index0 As Integer, ByVal row_indexF As Integer, ByVal tgt_row_indexF As Integer, ByVal formula_col_index As Integer, ByVal sheet_name As String) 

Dim book1 As Workbook 
Dim book2 As Workbook 

Set book1 = Workbooks("Summary.xlsm") '<edit as needed 
Set book2 = Workbooks("Summary_0.xlsm") '<edit as needed 

Cells(row_index0, formula_col_index).Select 

ActiveCell.FormulaR1C1 = _ 
     "=IF(ISNA(VLOOKUP(RC[-2],book2.Sheets(sheet_name).Range(Cells(row_index0,formula_col_index).Address,Cells(tgt_row_indexF,formula_col_index).Address),1,FALSE)),""ERROR"",""OK"")" 


End Sub 

但它抛出一个错误。

你能帮助我吗?

回答

2

试试这个:

Sub vlookup(ByVal row_index0 As Integer, _ 
      ByVal row_indexF As Integer, _ 
      ByVal tgt_row_indexF As Integer, _ 
      ByVal formula_col_index As Integer, _ 
      ByVal sheet_name As String) 

    Dim book1 As Workbook 
    Dim book2 As Workbook 

    Set book1 = Workbooks("Summary.xlsm") '<edit as needed 
    Set book2 = Workbooks("Summary_0.xlsm") '<edit as needed 

    Cells(row_index0, formula_col_index).FormulaR1C1 = _ 
     "=IF(ISNA(VLOOKUP(RC[-2],'[" & book2.Name & "]" & sheet_name & "'!" & _ 
      Range(Cells(row_index0, formula_col_index), Cells(tgt_row_indexF, formula_col_index)).Address(, , xlR1C1) & _ 
      ",1,FALSE)),""ERROR"",""OK"")" 
End Sub 
+1

感谢队友,这部分的工作,但它是一个小的修复;) – 7raiden7

+0

嗯:)究竟是什么不起作用?我在发帖之前测试过它:) –

+1

只是我用它的问题!它完美地工作;) – 7raiden7

相关问题