如何修复此Excel VBA代码以输入空单元格

时间:2019-08-21 14:14:00

标签: excel vba

我用它按单元格按字母顺序排列我的Excel工作表。有人可以帮我解决此代码,以忽略空单元格或将它们排序到最后吗?

这是我用来执行此操作的代码,但我不知道如何添加字符串以插入空单元格或将它们放在末尾。

Sub SortWksByCell()
    Dim i As Integer
    Dim j As Integer

    For i = 1 To Worksheets.Count
        For j = i To Worksheets.Count
            If UCase(Worksheets(j).Range("A260")) < _
              UCase(Worksheets(i).Range("A260")) Then
                Worksheets(j).Move before:=Worksheets(i)
            End If
        Next
    Next
End Sub

它将所有A260范围为空的工作表放在我想要的最后一个

1 个答案:

答案 0 :(得分:4)

添加一个Else If来测试范围是否为空字符串。如果是这样,请将其移至末尾。另外,您需要使用反向循环,否则您将错过工作表。

Sub SortWksByCell()
    Dim i As Long, j As Long

    For i = Sheets.Count To 1 Step -1
        For j = Sheets.Count To i Step -1
            If UCase(Sheets(j).Range("A260")) < UCase(Sheets(i).Range("A260")) Then
                Sheets(j).Move before:=Sheets(i)
            ElseIf Sheets(j).Range("A260") = "" Then
                Sheets(j).Move after:=Sheets(Sheets.Count)
            End If
        Next
    Next
End Sub