私は2つのワークブックを持っています.1つはスレーブ、もう1つはマスターです。XとXが一致する2つのワークブックの間のVBAコピーの値は?
Slave.xlsm
ID Case Size Names
1 1o Michael
2 4 Katie
3 3 Elliot
Master.xlsm
ID Case Size Names
1 1o
2 4
3 3
スレーブワークブックから、私はIDとケースサイズがマスターに一致する名前]列から値をコピーしようとしています。
私はVBAを初めて使いましたので、オンラインでいくつかの例を参考にして自分のコードをコンパイルしようとしました。ここで私はこれまで持っているものです:
Sub GetTheName()
Dim s As String, FileName As String
s = "C:\Users\******\Documents\*.xlsm"
FileName = Dir(s)
Do Until FileName = ""
If FileName Like "Slave*" Then MsgBox FileName
Dim w1 As Worksheet, w2 As Worksheet
Dim c As Range, FR As Long
Application.ScreenUpdating = False
Set w1 = Workbooks.Open(FileName).Sheets(1)
Set w2 = ThisWorkbook.Sheets(1)
For Each c In w1.Range("C10", w1.Range("C" & Rows.Count).End(xlUp))
FR = 0
On Error Resume Next
FR = Application.Match(c, w2.Columns("A"), 0)
On Error GoTo 0
If FR <> 0 Then w2.Range("R" & FR).Value = c.Offset(, 0)
Next c
Application.ScreenUpdating = True
FileName = Dir()
ActiveSheet.Range("A8").Value = Now()
Loop
End Sub
私は下の行に型不一致エラーを取得するOn Error Resume Nextを削除する場合:コードはworkbokを開きますが、コピーされません
FR = Application.Match(c, w2.Columns("R"), 0)
何でもあります。なぜ何もコピーされていないのか分かりません。誰かが私がどこに間違っているのかを教えてもらえますか?おかげ
はこれを取り出します。エラーで次の再開します。プロジェクトエクスプローラを開き、F8キーを押してコードをステップ実行します。何が起こるのですか? – User632716
"tom prestonありがとう、この行を取り出すと、この行にタイプの不一致エラーが表示されます。FR = Application.Match(c、w2.Columns(" R ")、0) –
@ Bing.Wong両方の列(AとB)を使用する場合は、 "Help"列Dを作成する必要があります。次に、 "Column D"の値の間にMacth関数を使用する必要があります。 –