【问题标题】:vba sort worksheets: why capital / non-capital?vba 排序工作表:为什么是大写/非大写?
【发布时间】:2014-07-31 06:08:45
【问题描述】:

我有一个代码,可以将我的工作表从第 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

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

【问题讨论】:

标签: vba sorting excel worksheet


【解决方案1】:

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

这是一张供参考的表格。

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

【讨论】:

  • 谢谢,这解释了它,现在我明白 A 与 a 不同,尽管两者都是同一个字母。所以我可以选择使用 Lcase 或者 evenso Ucase 来调整代码到正确的排序。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-12-04
  • 2013-02-17
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
相关资源
最近更新 更多