2013-06-12 34 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 
相关问题