vba - 按字母顺序排序字符串,忽略括号
问题描述
我有八个不同的变量,它们可以有值或没有值。它们看起来像这样:
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)
字母排序可以发生在任何这些步骤之间。
我该如何处理?也许有数组的东西,但我没有使用这些的经验。
解决方案
使用 Excel 工作表:
- 将值放入 A 列
- 将不带括号的干净值放入 B 列
- 对 B 列中的值进行排序
- 从 A 列中检索排序后的值,包括括号
使用二维数组:
- 将值放入 arr(x, 0)
- 将不带括号的干净值放入 arr(x, 1)
- 对干净的值进行排序
- 从 arr(x, 0) 中检索排序值,包括括号
请参阅此进行多维排序: 在 VBA 中对多维数组进行排序
推荐阅读
- javascript - 如何在 japi joi 中进行嵌套对象验证
- metrics - keras.metrics.AUC() 用于三元分类问题
- mdx - MDX 多个条件过滤多个维度
- javascript - 离线移动生成 6 位代码用于 2 因素身份验证
- angular - 将 Angular 8 应用程序部署到 IIS
- xml - 一种在spring xml中将一个bean指向另一个bean的方法
- javascript - 通过javascript将特定项目移动到div元素的底部
- jquery - 动态内容的正确语法 jquery 函数是什么
- linux - insmod:错误:无法插入模块 HelloWorld.ko:不允许操作
- java - 访问 ArrayList 中的引用时出现问题