-4
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           

我想运行一个宏,它会针对唯一字段的 E-Code 自动执行工作表 2 中的 vlookup 功能。

我创建的宏如下。但是,当我更改数据时,它不起作用。

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
4

1 回答 1

0

我已经检查了你的代码。它工作正常。但是,如果您增加行数,则不会考虑在内。请找到下面的代码,它将找到 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
于 2013-05-29T12:27:42.890 回答