如何交换多个细胞?

问题描述 投票:-4回答:2

有没有在Excel中自动交换/切换数据的方法?

例如:

我有一张近16.000列的Excel表格。每列有5行。 5行包含A,B,C,D,E等信息,但数据未排序,因此我有以下内容:B,A,C,D,EB,C,D,E

我想先把所有As和不包含A的行放在(B,C,D,E)中,以便在B之前添加一个空白行。

我只找到了如何手动完成并使用较少的数据和列。

excel vba
2个回答
1
投票

您可以使用公式(填充然后跨)来执行此操作:

enter image description here


1
投票

根据您的评论,以下代码适用于您列出的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

这将更改行,如下所示:

Before Picture

修正后图片:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.