首页 > 解决方案 > 用vba排序

问题描述

请帮助我想对名称列进行排序,以便每个名称在每个空白单元格之后开始。

在此处输入图像描述

我希望它看起来像这样..请帮助这是一个很长的专栏

在此处输入图像描述

标签: excelvbasorting

解决方案


我可能最好在创建数组之前删除空范围,但这是分配名称的一种方法:

将范围加载到数组中,然后遍历数字并查找空范围。这假设我们正在使用列“A”和“B”(1 和 2),从顶部开始。

Sub test()
Dim arr As Variant
Dim lastRow As Long, i As Long, j As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
arr = Application.Transpose(Range("B2:B" & lastRow))
Range("B2:B" & lastRow).Clear
j = 1
For i = 2 To lastRow
    Cells(i, 2) = arr(j)
    j = j + 1
    If j >= UBound(arr) Then Exit For
    While arr(j) = "" And j < UBound(arr)
        j = j + 1
    Wend
    While Not Cells(i, 1).Value = ""
        i = i + 1
    Wend
Next i
End Sub

任何剩余的名称都将被删除


推荐阅读