-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 コードに対して、シート 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 に答える