Vba 忽略括号按字母顺序对字符串排序

Vba 忽略括号按字母顺序对字符串排序,vba,Vba,我有八个不同的变量,可以有值也可以没有值。它们看起来像这样: A= "h" B= "(z)" C= "a" D= "" E= "[st]" F= "" G= "xx" H= "(t)" 我需要它们按字母顺序排列(必须包括括号): 我知道如何把它们放在一根绳子里,以及如何把“,”放在正确的地方 我如何按字母顺序排列它们,而忽略括号 要排除emtpy值并为每个值添加逗号,请执行以下操作: If IsEmpty(HH) = False Then HHH = HH.Value & "," 为

我有八个不同的变量,可以有值也可以没有值。它们看起来像这样:

A= "h"
B= "(z)"
C= "a"
D= ""
E= "[st]"
F= ""
G= "xx"
H= "(t)"
我需要它们按字母顺序排列(必须包括括号):

我知道如何把它们放在一根绳子里,以及如何把“,”放在正确的地方

我如何按字母顺序排列它们,而忽略括号

要排除emtpy值并为每个值添加逗号,请执行以下操作:

If IsEmpty(HH) = False Then HHH = HH.Value & ","
为了将它们放在一起,我使用了“&”函数

要删除最后一个逗号,请使用:

If Right$(StrHoribez, 1) = "," Then StrHoribez = Left$(StrHoribez, Len(StrHoribez) - 1)
字母排序可以在这些步骤之间进行

我怎样才能做到这一点?可能有数组,但我没有使用这些数组的经验。

使用Excel工作表:

  • 将值放入A列
  • 将不带括号的清洁值放入B列
  • 按B列中的值排序
  • 从A列(包括括号)中检索排序后的值
  • 使用二维数组:

  • 将值放入arr(x,0)
  • 将无括号的清洁值放入arr(x,1)
  • 按干净值排序
  • 从arr(x,0)中检索已排序的值,包括括号
  • 有关多维排序,请参见以下内容:

    使用
    Replace()
    删除非文本字符结果是否必须包含非文本字符?您将其标记为Excel问题。您可以将这些值放入Excel工作表中,进行排序,然后再次检索。对于VBA排序数组:@D_Bester,谢谢您的评论。在Excel中排序时,它会将所有带括号的变量放在一起,而不是忽略它。此外,这也必须在将来自动工作。我扔掉了Excel标签。对不起,如果这让人困惑的话。
    StrHoribez = BBB & CCC & DDD & EEE & FFF & GGG & HHH & III
    
    If Right$(StrHoribez, 1) = "," Then StrHoribez = Left$(StrHoribez, Len(StrHoribez) - 1)