2013-06-12 72 views
0

我正在嘗試清理一些包含網絡資產信息的CSV報告文件。使用VBA函數,我該如何修復我的循環,以便根據列中的匹配單元格值將單元格值複製到新行中?

列A包含各種值的PluginID。我想複製偏移量(0,x),然後粘貼到同一列中的一個單元格中,根據列B中的主機IP地址匹配。這是迄今爲止我所擁有的。

Sub finalDataMove() 

Dim LR As Long 

LR = Range("A" & Rows.Count).End(xlUp).Row 

For i = 1 To LR 
    If Range("A" & i).Value = "11936" Then 
     Range("A" & i).Offset(0, 3).Copy 
     **"Help me please!"**.PasteSpecial xlPasteAll 
    End If 

    If Range("A" & i).Value = "12053" Then 
     Range("A" & i).Offset(0, 4).Copy 
     **"Help me please!"**.PasteSpecial xlPasteAll 
    End If 

Next i 

Application.CutCopyMode = False 


End Sub 
+1

我不明白。你想在哪裏粘貼複製的值? – Jack

+0

@Jack從問題'並粘貼到進一步在同一列中的單元格,根據列B'中匹配的主機IP,我明白作爲複製偏移第一行,其中列B =當前行列B,但我不確切地知道兩者之一。 – user2140261

回答

1

你的代碼可以寫得更好,但我只是試圖糾正你的代碼。我希望它能幫助你。

Sub finalDataMove() 

Dim LR   As Long 
Dim varCol  As Variant 

LR = Range("A" & Rows.Count).End(xlUp).Row 

For i = 1 To LR 
    If Range("A" & i).Value = "11936" Then 
     varCol = Application.Match(Range("B" & i).Value, [B:B], 0)    
     Range("A" & i).Offset(0, 3).Copy 
     Range("A" & varCol).Offset(0, 3).PasteSpecial xlPasteAll 
    End If 

    If Range("A" & i).Value = "12053" Then 
     varCol = Application.Match(Range("B" & i).Value, [B:B], 0)   
     Range("A" & i).Offset(0, 4).Copy 
     Range("A" & varCol).Offset(0, 4).PasteSpecial xlPasteAll 
    End If 

Next i 

Application.CutCopyMode = False 


End Sub 
相關問題