2016-10-29 12 views
0

Excel VBAを使用すると、ブック「A」の列Cを見て、ブックBの列「B」と比較する必要があります。 。一致が見つかった場合は、マッチしたのと同じ行のセル「G:I」ブック「B」からデータをコピーし、マッチが行われた同じ行のセル「M:O」ブックにデータを貼り付けます。2つのスプレッドシートのデータを比較し、一致するものに基づいて情報をコピーします

ここでマクロIveが出てくるが、一致するものは見つかるが、値をコピーしない。時計を使って私はマッチを確認した。

ありがとうございました!

Sub update() 

    Dim filename As String 
    Dim filedate As String 
    Dim filepath As String 
    Dim folderyear As String 
    Dim i As Double 
    Dim j As Double 
    Dim LastRow As Range 
    Dim TargetLastRow 

    filedate = Format(Now, "mm.dd.yyyy") 
    folderyear = Format(Now, "yyyy") 
    filepath = "Path" 
    filename = filedate & " " & "Draft.xlsx" 
    Set wbkOpen = Workbooks.Open(filepath & filename, False, True) 
    wbkOpen.Worksheets("infosheet").Columns("M:O").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 

    For i = 1 To wbkOpen.Worksheets("infosheet").Cells(Rows.Count, 1).End(xlUp).Row 

     For j = 1 To ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row 
      If wbkOpen.Worksheets("infosheet").Range("C" & i) = ThisWorkbook.Worksheets("Sheet1").Range("B" & j) Then 
       ThisWorkbook.Worksheets("Sheet1").Range("G" & j & ":I" & j) = wbkOpen.Worksheets("infosheet").Range("M" & i & ":O" & i) 
      End If 

     Next j 
    Next i 


End Sub 
+0

? – user3598756

+0

@ user3598756申し訳ありませんが、その結果は古くなっています。私はそれ以来私の結果を更新しました。 – Spiral

+0

それを見つけました! – Spiral

答えて

0

それを実証しました! .ValueをIF文に追加する必要があります。あなたがいっぱいにデータを持っているhow'd

Sub update() 

Dim filename As String 
Dim filedate As String 
Dim filepath As String 
Dim folderyear As String 
Dim i As Double 
Dim j As Double 
Dim LastRow As Range 
Dim TargetLastRow 

filedate = Format(Now, "mm.dd.yyyy") 
folderyear = Format(Now, "yyyy") 
filepath = "Path" 
filename = filedate & " " & "Draft.xlsx" 
Set wbkOpen = Workbooks.Open(filepath & filename, False, True) 
wbkOpen.Worksheets("infosheet").Columns("M:O").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 

For i = 1 To wbkOpen.Worksheets("infosheet").Cells(Rows.Count, 1).End(xlUp).Row 

    For j = 1 To ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row 
     If wbkOpen.Worksheets("infosheet").Range("C" & i).Value = ThisWorkbook.Worksheets("Sheet1").Range("B" & j).Value Then 
      ThisWorkbook.Worksheets("Sheet1").Range("G" & j & ":I" & j).Value = wbkOpen.Worksheets("infosheet").Range("M" & i & ":O" & i).Value 
     End If 

    Next j 
Next i 

End Subの

関連する問題