将某些值从一个列复制到另一个列并删除原始值

时间:2015-10-02 05:27:17

标签: excel vba excel-vba

如果单元格包含单词IN并删除原始值,我想将值从一列复制到另一列(到同一行)。如果没有,代码应该进入下一行并执行新的测试。因此,目标列中的单元格将保持为空。

当我在Excel中运行代码时没有任何反应,所以我不知道出了什么问题。

理想情况下,代码应跳转到下一列(8)并执行相同的搜索,并在第一列完成时将值粘贴到同一列(5)中,但是我还没有开始。所以我也非常感谢提示:)

Sub Size()
    Dim i As Integer, a As String
    i = 2
    a = "IN"

    Do While Cells(i, 7).Value <> ""
        If InStr(Cells(i, 7), a) Then
            'copying the value to another column but within the same row
            Cells(i, 7).Copy Cells(i, 5) 
            Cells(i, 7).Clear
            i = i + 1
        Else
            i = i + 1
        End If
    Loop
End Sub

1 个答案:

答案 0 :(得分:0)

我发现第7列中的第一个单元格是空的,因此Do While Cells(i, 7).Value <> ""无效。因此,我指的是始终包含数据的不同列。请注意,解决方案代码也会跳转到下一列,以便搜索相同的单词。

Sub Size()
Dim i As Integer, a As String
j = 0
i = 1
a = "IN"
Range("A1").Offset(i, 0).Select

For j = 0 To 2
    Do Until Selection.Value = ""
        If InStr(Range("G1").Offset(i, j).Value, a) Then
        Range("E1").Offset(i, 0).Value = Range("G1").Offset(i, j).Value
        Range("G1").Offset(i, j).Clear
        i = i + 1
        Range("A1").Offset(i, 0).Select
        Else
        i = i + 1
        Range("A1").Offset(i, 0).Select
        End If
    Loop
    i = 1
    Range("A1").Offset(i, 0).Select
Next j
End Sub