2013-05-29 80 views
-3
Sheet 1 

E-Code E-Name 
11621 Hari 
12205 Dass 
11709 Boss 
11913 Pass 
11755 Test 

Sheet 2   

E-Code   
11621   
11709   
11913   
11755   
12205   

我想運行一個宏,它會自動在表2中針對唯一字段的E代碼執行vlookup函數。Excel 2010中的宏

我創建的宏如下。但是,當我更改數據它不起作用。

Sub Macro() 

Sheets("Sheet2").Select 
Range("B2").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!C[-1]:C,2,0)" 
Range("B2").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!C1:C2,2,0)" 
Range("B2").Select 
Selection.Copy 
Range("B3:B6").Select 
ActiveSheet.Paste 
Range("A1").Select 

End Sub 
+2

夠公平的,但我們不打算爲你寫。我們非常樂意幫助您解決您面臨的問題。那麼你到現在爲止嘗試了什麼?你能告訴我們什麼?任何特別的東西都行不通?您可以將更多的細節添加到您的問題中,我們就越容易幫助您。 – Bart

+0

我有更新問題中的相同。 –

回答

0

我已檢查過您的密碼。它工作正常。但是,如果增加no行數,則不會考慮在內。請找到下面的代碼,它將在Sheet1和Sheet2中找到行號。

Sub Macro1() 

    Dim sht1 As Worksheet 
    Dim sht2 As Worksheet 

    Set sht1 = ThisWorkbook.Sheets("Sheet1") 
    Set sht2 = ThisWorkbook.Sheets("sheet2") 

    Sh1Rows = sht1.Range("A" & Rows.Count).End(xlUp).Row 
    sh2rows = sht2.Range("A" & Rows.Count).End(xlUp).Row 

    sht2.Range("B2") = "=Vlookup(A2," & sht1.Name & "!" & sht1.Range("A2:B" & sh2rows).Address & ",2,false)" 
    sht2.Range("B2").Copy sht2.Range("B2:B" & sh2rows) 
End Sub 
+0

嗨,這是完美的工作時,沒有。的行在兩張紙上都是匹配的。然而,說在第一張我有10行的數據,並在第二張我有5行的數據這個宏顯示的錯誤數據中存在於表1中5後的行中的值。 –