使用VBA函数,如何根据列中匹配的单元格值修复循环以将单元格值复制到新行?

时间:2013-06-12 16:02:19

标签: excel vba excel-vba

我正在尝试清理一些包含网络资产信息的CSV报告文件。

A列包含各种值的PluginID。我想根据列B中匹配的主机IP,将偏移量(0,x)复制并粘贴到同一列中的一个单元格中。这是我到目前为止所拥有的。

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 个答案:

答案 0 :(得分: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