Excel 行块的字母排序算法

Excel 行块的字母排序算法,excel,vba,sorting,block,Excel,Vba,Sorting,Block,我的数据如下所示: Name #modules module_name etc ... Machine1 3 module1 data module2 data module3 data Machine2 1 module1 data Machine3

我的数据如下所示:

Name      #modules      module_name    etc   ...  
Machine1     3          module1       data  
                        module2       data  
                        module3       data  
Machine2     1          module1       data  
Machine3     2          module1       data  
                        module2       data  
...  

我想根据第一列(机器名)按字母顺序对数据进行排序,但我想将行直接放在它后面。因此,如果
#modules
为3,我希望将这3行放在一起。

以防链接消失。有许多方法可以基本上完成表格填充,以确保a列没有空白单元格,因此在对其进行排序时,您的组保持在一起

您可以使用powerquery中的“表格填充”选项来填充空白,从上面输入值,或者在循环中使用VBA,或者使用带有“查找和替换”的公式

我在这里给出的链接中有一些用公式填充的截图:

ozgrid解决方案的链接

Sub FillBlanks()

Dim rRange1 As Range, rRange2 As Range

Dim iReply As Integer

    If Selection.Cells.Count = 1 Then

        MsgBox "You must select your list and include the blank cells", _

            vbInformation, "OzGrid.com"

            Exit Sub

    ElseIf Selection.Columns.Count > 1 Then

        MsgBox "You must select only one column", _

            vbInformation, "OzGrid.com"

            Exit Sub

    End If



    Set rRange1 = Range(Selection.Cells(1, 1), _

        Cells(65536, Selection.Column).End(xlUp))



    On Error Resume Next

    Set rRange2 = rRange1.SpecialCells(xlCellTypeBlanks)

    On Error GoTo 0



    If rRange2 Is Nothing Then

        MsgBox "No blank cells Found", _

            vbInformation, "OzGrid.com"

        Exit Sub

    End If



    rRange2.FormulaR1C1 = "=R[-1]C"



    iReply = MsgBox("Convert to Values", vbYesNo + vbQuestion, "OzGrid.com")

    If iReply = vbYes Then rRange1 = rRange1.Value

End Sub
链接到powerquery示例:


请用所需结果的小样本更新您的问题。为什么不使用表格填充选项(VBA/Powerquery;可能还有其他选项)来确保a列中的所有列都有一个名称(取上面的名称)?在没有空格的情况下,a列上的排序将保留3个模块的分组。有关如何使用公式和xlBlanks。。。。您需要的部分是使用公式用上面的值填充空白单元格