2016-11-16 27 views
0

我有一个大的excel文件,列的长度一致,但它们的位置不太准确; 照片中的示例说明了我的问题;我只对“国家”栏后面的信息感兴趣。 因此,在每行内,我想 1.检查每一行以找到特定字符串 - 在本例中为“西班牙”。 2.移动该行,以便找到的字符串单元格全部位于同一列上。Excel:根据条件将行的内容移动到特定的列

在下面的例子中,所有的行都应该移动,以便“西班牙”在列F下 - 安排其余的信息。

moving rows to specific column ID

回答

0

如果字西班牙没有改变,使用VBA代码:

Sub MoveCoun() 
Dim LastRow As Long 
Dim rFind As Range 
Dim r As String 
Dim m As Integer 
LastRow = 1000 
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 
相关问题