相关疑难解决方法(0)

257
推荐指数
9
解决办法
27万
查看次数

用于Excel VBA的LIFO(堆栈)算法/类

我想在VBA for Excel中实现"Stack"类.我想使用Last In First Out结构.以前有人遇到过这个问题吗?你知道外部库处理结构,如Stack,Hastable,Vector ......(除了原始的Excel Collection等...)

谢谢

excel stack vba

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

无法在VBA中迭代Hashtable(Excel)

我正在使用Hashtable(引用了mscorlib.dll).我用数据填充它,我可以得到任何项目(只要我将请求类型转换为与哈希表中存储的完全相同的类型),.CONTinsValue/Key - 一切正常.但我不能通过For Each循环遍历它.我已经尝试了我可以在互联网上找到的所有方法(对于每个元素......,其中元素是DictionaryEntry,通过GetEnumerator),但没有一个工作 - 我可以通过枚举器滚动表,但我无法到达密钥也没有迭代器定位的值.我究竟做错了什么?我通过设置数字键并迭代这些数字暂时解决了它,但它不起作用,因为最后会有两次相同的数字......

PS:我不能使用Dictionary而不是Hashtable,因为我需要ContainsKey和ContainsValue,并且能够通过键或值检索项目.

编辑:我当前的代码(我正在寻找的是替换"For i"循环,所以我不需要键是我已经知道的数字)

For i = 1 To UBound(rands)
        chopped_yes = Split(ThisWorkbook.Worksheets(1).Range("Z" & rands(i)))
        chopped_no = Split(ThisWorkbook.Worksheets(1).Range("AA" & rands(i)))
        chopped_any = Split(ThisWorkbook.Worksheets(1).Range("AB" & rands(i)))
        For Each part In chopped_yes
            If rules_yes.ContainsValue(cscs.item(CLng(rands(i)))) Then
                validcsc = 0
                GoTo WriteIt
            End If
        Next part
        For Each part In chopped_no
            If rules_no.ContainsValue(cscs.item(CLng(rands(i)))) Then
                validcsc = 0
                GoTo WriteIt
            End If
        Next part
        For Each part In chopped_any
        pepa = cscs.item(CLng(rands(i)))
        chopped_pepa = Split(pepa, "=")
            If rules_any.ContainsValue(CStr(chopped_pepa(0))) Then
                validcsc …
Run Code Online (Sandbox Code Playgroud)

vba hashtable

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

标签 统计

vba ×3

data-structures ×1

dictionary ×1

excel ×1

hashtable ×1

stack ×1

vb6 ×1