按字母顺序排序字符串,忽略方括号

时间:2019-10-17 13:05:35

标签: vba

我有8个不同的输入变量,可以有一个值或没有值。他们看起来像这样:

A= "h"
B= "(z)"
C= "a"
D= ""
E= "[st]"
F= ""
G= "xx"
H= "(t)"

我需要的是按这样的字母顺序将它们放在一起(必须包括方括号!):

Aim= "a,h,[st],(t),xx,(z)"

我知道如何将它们组合成一个字符串,以及如何将“,”放置在正确的位置。我不知道的是如何将它们按字母顺序排列,并在这样做时忽略了括号。

编辑:要排除空值并为每个值添加逗号:

If IsEmpty(HH) = False Then HHH = HH.Value & ","

为了将它们放在一起,我们只使用“&”功能

StrHoribez = BBB & CCC & DDD & EEE & FFF & GGG & HHH & III

要删除我使用的最后一个逗号:

If Right$(StrHoribez, 1) = "," Then StrHoribez = Left$(StrHoribez, Len(StrHoribez) - 1)

这些步骤之间可以进行字母排序。

有人知道如何解决这个问题吗?我想也许有数组的东西,但我没有使用这些的经验。 谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用Excel工作表:

  1. 将值放入A列
  2. 将不带括号的纯净值放入B列
  3. 对B列中的值进行排序
  4. 从A列检索包括括号在内的排序值

使用二维数组:

  1. 将值放入arr(x,0)
  2. 将不带括号的纯净值放入arr(x,1)
  3. 按净值排序
  4. 从arr(x,0)检索包含括号的排序值

请参阅此以进行多维排序: Sorting a multidimensionnal array in VBA