冒着成为话题的风险,我决定分享一些问答式的代码。如果一般意见认为这将是题外话,我很乐意在需要时删除。
背景
我们可以从任何一维数组或Range变成一维数组的对象中检索所有唯一值,而不必遍历其元素吗?就我而言,普遍的共识是必须迭代不同的元素,最好的方法是使用字典或集合来存储唯一值。这是我发现非常有效的方法为了这个目的。
题
那么如何从一维数组中检索唯一元素,例如:
Dim arr As Variant: arr = Array("A", "A", "C", "D", "A", "E", "G")
Run Code Online (Sandbox Code Playgroud)
结果数组在哪里:
{"A", "C", "D", "E", "G"}
Run Code Online (Sandbox Code Playgroud) 我在Excel中有一系列单元格,这些单元格的列宽度超过一列且长度超过一行.有些细胞是空白的.我想将非空白单元格合并(使用VBA)到列表中,删除重复项,并按字母顺序排序.
例如,给定此输入(其中短划线为此问题指定空单元格):
- - A D -
C - - A -
- - B - D
- - - - -
A - - E -
Run Code Online (Sandbox Code Playgroud)
生成以下排序输出:
A
B
C
D
E
Run Code Online (Sandbox Code Playgroud)
如示例输入所示,范围中的某些行和列可能包含所有空单元格.