シートAの列AとシートAの列Aを比較しようとしています。一致する場合は、シート1から列3をコピーします。ここに私が持っているコードがありますが、それは動作していません。Excel VBA - 2つの列の値を比較し、一致する行を新しいシートにコピーします。
あなたの言葉遣い次Sub compareAndCopy()
Dim lastRowE As Integer
Dim lastRowM As Integer
Dim foundTrue As Boolean
' stop screen from updating to speed things up
Application.ScreenUpdating = False
lastRowE = Sheets("Sheet2").Cells(Sheets("Sheet2").Rows.Count, "A").End(xlUp).Row
lastRowF = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row
lastRowM = Sheets("Sheet3").Cells(Sheets("Sheet3").Rows.Count, "B").End(xlUp).Row
For i = 1 To lastRowE
foundTrue = False
For j = 1 To lastRowF
If Sheets("Sheet2").Cells(i, 1).Value = Sheets("Sheet1").Cells(j, 1).Value Then
'MsgBox ("didnt find string: " & Sheets("Sheet2").Cells(i, 2).value)
Sheets("Sheet2").Rows(i).Copy Destination:= _
Sheets("Sheet3").Rows(lastRowM + 1)
Exit For
End If
Next j
If Not foundTrue Then
lastRowM = lastRowM + 1
foundTrue = True
End If
Next i
' stop screen from updating to speed things up
Application.ScreenUpdating = True
End Sub
この問題について具体的にお答えください。何が効いていないのですか?それはエラーを投げますか?もしそうなら、どの行に? –
あなたの物語とあなたのコードは一致しません。あなたの物語では、シート1をシート3に移したいが、シート2をシート3に移したいとします。どちらですか?また、foundTrueとは何ですか、あなたは本当にそれを使用していない、なぜ余分なコードがありますか? –