有没有在Excel中自动交换/切换数据的方法?
例如:
我有一张近16.000列的Excel表格。每列有5行。 5行包含A,B,C,D,E
等信息,但数据未排序,因此我有以下内容:B,A,C,D,E
或B,C,D,E
。
我想先把所有A
s和不包含A
的行放在(B,C,D,E)
中,以便在B
之前添加一个空白行。
我只找到了如何手动完成并使用较少的数据和列。
根据您的评论,以下代码适用于您列出的3个项目。如果您有更多选项,只需更新数组中的字段即可
Sub CFixer()
Dim c As Long, WS As Worksheet, i As Integer, startRow As Integer, lastRow As Long, checkRNG As Range
Dim Check(2) As String 'must match below list
Check(0) = "BAC"
Check(1) = "GLO"
Check(2) = "HDP"
Dim T(2) As String ' must match list above
startRow = 1 'first row to evaluate
Set WS = ActiveSheet
lastRow = startRow + UBound(Check) 'last row to look to replace
For c = 1 To WS.UsedRange.Columns.Count
Set checkRNG = Range(WS.Cells(startRow, c), WS.Cells(lastRow, c))
For i = 0 To UBound(Check)
If Application.WorksheetFunction.CountIf(checkRNG, Check(i)) > 0 Then
T(i) = Check(i)
Else
T(i) = ""
End If
Next i
checkRNG.Value = Application.WorksheetFunction.Transpose(T)
Next c
End Sub
这将更改行,如下所示: