vba排序工作表:为何资本/非资本?

时间:2014-06-10 13:00:49

标签: excel vba sorting excel-vba worksheet

我有一个代码可以将工作表从表9排序到最后一页。我发现它完美无缺。唯一我不明白的地方:代码首先以某种方式对大写字母进行排序,之后,所有名称都不以大写字母开头的表格如下。 那是为什么?

这是排序代码:

Sub SortSheets()
   Application.ScreenUpdating = False
   Dim I As Integer, J As Integer

For I = 9 To Sheets.Count
  For J = I + 1 To Sheets.Count
    If Sheets(J).Name < Sheets(I).Name Then
      Worksheets(J).Move before:=Worksheets(I)
    End If
  Next J
Next I

End Sub

它现在对所有正确的工作表进行排序,但首先,对所有名称以大写字母开头的工作表进行排序,然后对所有名称以非大写字母开头的工作表进行排序。

1 个答案:

答案 0 :(得分:0)

虽然simoco提供的代码修复了排序 - 首先对大写字母进行排序的原因是因为它们的ASCII values较低。

这是一张供参考的表格。 ASCII values

您可以使用Asc(myString)函数在VBA中获取字符串的ASCII值。