VBA Excel - 搜索字符串行,如果找到则将整个单元格复制到特定位置

时间:2016-11-19 19:31:19

标签: excel vba

我在Excel中获得了3000行数据。 每行包含相同类型的信息,但顺序不正确。 我需要做的是在同一列下收集相同类型的信息。我想创建一个宏:

  • 在行中搜索部分字符串(某些值具有相似字符串但属于不同类别)

  • 如果字符串是单元格的一部分,则复制整个单元格 新地点

  • 重复下一行

提前致谢

1 个答案:

答案 0 :(得分:2)

Sub MoveColumns()
Dim LastRow As Long
Dim rFind As Range
Dim r As String
Dim m As Integer
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
MsgBox (LastRow)
For n = 1 To LastRow
    r = n & ":" & n
    Range(r).Select
    With Range(r)
        Set rFind = .Find(What:="Spain*", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
        If Not rFind Is Nothing Then
            If rFind.Column < 6 Then
                m = 6 - rFind.Column
                Range(Cells(n, 1), Cells(n, m)).Insert Shift:=xlToRight
            ElseIf rFind.Column > 6 Then
                m = rFind.Column - 6
                Range(Cells(n, 1), Cells(n, m)).Delete Shift:=xlToLeft
            End If
        End If
    End With
Next
End Sub

<强>已更新 如果row不包含以“Spain”开头的任何值,则只会忽略并跳过此行。 我希望您可以修改和自定义适合您数据的方式。