相关疑难解决方法(0)

VBA数组排序功能?

我正在为VBA中的数组寻找合适的排序实现.Quicksort将是首选.或任何其他排序算法除了冒泡或合并之外的就足够了.

请注意,这是为了与MS Project 2003一起使用,因此应避免使用任何Excel本机函数和任何.net相关的函数.

arrays sorting vb6 vba ms-project

79
推荐指数
6
解决办法
24万
查看次数

VBA集合:密钥列表

在我向VBA集合添加一些值之后,有没有办法保留所有键的列表?

例如

Dim coll as new  Collection
Dim str1, str2, str3
str1="first string"
str2="second string"
str3="third string"
coll.add str1, "first key"
coll.add str2, "second key"
coll.add str3, "third key"
Run Code Online (Sandbox Code Playgroud)

我知道如何保留字符串列表:

first string
second string
third string
Run Code Online (Sandbox Code Playgroud)

再一次:有没有办法保留钥匙?

first key
second key
third key
Run Code Online (Sandbox Code Playgroud)

注意:我正在通过AutoCAD 2007使用VBA

collections vba

43
推荐指数
5
解决办法
15万
查看次数

我可以使用VBA函数将可接受值的(动态)列表返回到Excel的数据验证中吗?

对于给定的单元格,我选择数据/验证并将允许设置为"列表".我现在希望像这样设置Source:

= rNames(REGS)

但这不起作用(找不到名字).所以我去插入/名称/定义并通过简单地指定上面的公式创建"REGNAMES"(没有单元格范围).然后我返回数据/验证,当我像这样设置Source时:

= REGNAMES

现在我得到"Source当前评估为错误".不幸的是,即使忽略它,这个错误也不会消失.我可以在表格中创建一个范围公式,如下所示:

{= REGNAMES}

并将其拖到几个单元格的右侧,并忠实地返回rNames函数

选项#1 | 选项#2 | ...

也就是说,该函数返回预期的范围.

我知道我可以使用宏代码来操作VBA中该单元格的List设置.我不太喜欢这些副作用.我更喜欢一个基于函数的干净依赖树.任何想法如何让数据/验证接受从rNames返回的数组值?

谢谢.

PS:rNames将结果范围作为Variant返回,如果有任何影响的话.

excel vba excel-vba

5
推荐指数
1
解决办法
1万
查看次数

使用VBA获取在VBA中使用的唯一值?

我目前会使用Range,Cells等许多不同方式使用相同的基本原理.

Range("A1", Range("A1").End(xlDown)).AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=Range("IV1"), Unique:=True

Dim myArr as Variant 
myArr = Range("IV1", Range("IV1").End(xlDown))
Columns("IV").Delete
Run Code Online (Sandbox Code Playgroud)

有没有办法直接将这些唯一值加载到VBA中的任何类型的对象而无需复制到另一个位置?

arrays excel vba unique excel-vba

4
推荐指数
1
解决办法
2万
查看次数

来自一维数组的唯一值,无需迭代

冒着成为话题的风险,我决定分享一些问答式的代码。如果一般意见认为这将是题外话,我很乐意在需要时删除。


背景

我们可以从任何一维数组或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)

arrays excel vba unique filter

4
推荐指数
2
解决办法
348
查看次数

如何在Excel中查找和提取重复的文本字段

我在MS Excel 2010的一列中有大约80,000封电子邮件.

其中一些是重复的,我需要找到并拉出那些重复.我希望将重复项放在单独的文档中.

现在我可以找到它们并使用内置于Excel中的条件格式功能(主页选项卡>条件格式>突出显示单元格规则>重复值)以红色突出显示它们,但实际上只是突出显示它们.

还有删除重复项,显然只删除它们; 不是我想要的.

有什么建议?

excel excel-2010

2
推荐指数
1
解决办法
5万
查看次数

标签 统计

vba ×5

excel ×4

arrays ×3

excel-vba ×2

unique ×2

collections ×1

excel-2010 ×1

filter ×1

ms-project ×1

sorting ×1

vb6 ×1