首页 > 解决方案 > 按字母顺序排序字符串,忽略括号

问题描述

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

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

我需要按字母顺序将它们全部放在一起(必须包括括号):

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

我知道如何将它们放在一个字符串中以及如何将“,”放在正确的位置。

如何在忽略括号的情况下按字母顺序排列它们?

要排除 emtpy 值并添加我为每个值使用的逗号:

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)

字母排序可以发生在任何这些步骤之间。

我该如何处理?也许有数组的东西,但我没有使用这些的经验。

标签: vba

解决方案


使用 Excel 工作表:

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

使用二维数组:

  1. 将值放入 arr(x, 0)
  2. 将不带括号的干净值放入 arr(x, 1)
  3. 对干净的值进行排序
  4. 从 arr(x, 0) 中检索排序值,包括括号

请参阅此进行多维排序: 在 VBA 中对多维数组进行排序


推荐阅读