excel - 同时打印两个独立字典的键

标签 excel vba dictionary

我有两个字典都包含字符串值。一个包含观察到的电线杆电气缺陷,另一个包含观察到的结构缺陷,特定于不同的工作人员。我想同时打印所有这些字典键并且彼此相邻。这是我真正知道如何引用字典键的唯一方法:

With Sheets("Results")
    For Each Item In electricalNotes
       .Range("G" & iResults).Value = Item
       .Range("H" & iResults).Value = electricalNotes(Item)
       iResults = iResults + 1
    Next
End With
electricalNotes.RemoveAll

问题是我打印结构注释字典的项目和值的代码是相同的,并且必须使用相同的增量器 iResults,因为代码必须识别这些观察结果与相应的工作人员配对。但我必须单独引用它们,因为我只知道如何执行“For Each”引用命令。由于它们是单独引用的,因此它们每个都有自己的 iResults 增量器,这意味着它在完成一个字典后继续增量,在完成的打印电气缺陷下打印结构缺陷(更左列的文本)(更右列的文本) .请参阅链接中的以下图片以获取可视化帮助:
Dictionary Help Visualization .

因此,如果有人知道如何解决此特定问题或知道如何更好地引用并随后同时打印存储在两个字典中的项目,我们将不胜感激!

最佳答案

我有点难以理解你的结构,但是,假设 electricalNotes 中的键之间存在一对一的相关性和 structuralNotes 中的键,您所要做的就是将键读入两个单独的变量数组,然后使用计数器遍历数组。就像是:

v1 = d1.Keys
v2 = d2.Keys

ReDim v3(1 To d1.Count, 1 To 4) 'or write directly to the worksheet

Dim I As Long

For I = 0 To d1.Count - 1
    v3(I + 1, 1) = v1(I)
    v3(I + 1, 2) = d1(v1(I))
    v3(I + 1, 3) = v2(I)
    v3(I + 1, 4) = d2(v2(I))
Next I
  • v1=d1.keys将创建字典中键的从零开始的一维数组。
  • 我选择将结果写入 vba 数组 ( v3 ),但您可以直接写入工作表。后者会慢得多。你可以写v3填充工作表后,只需一步即可。
  • 请注意 v3是一个从一开始的二维数组来对应工作表,所以要调整索引I取决于您引用的数组。我就是这样做的,如果你愿意,你可以Dim v3作为从零开始的数组,并使用 v(0,1-4) 作为列标题。
  • 关于excel - 同时打印两个独立字典的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535621/

    相关文章:

    vba - vba 的单个子/函数中可以使用多少个变量?

    vba - Excel:比较两个范围并删除重复的单元格值

    VBA:循环浏览文件夹中的文件,并从包含特定字符串的所有文件中获取信息

    c++ - map 内的 vector 清晰安全吗?

    python - Scala 中的什么数据结构是 Python 的嵌套字典或 csv?

    python - 将数据作为字典输出到新的 python 文件中

    vba - 如何检索 Excel 加载项中的隐藏工作表?

    excel - Classic ADO/ODBC/Oracle 10g EZConnect 的连接字符串语法

    python - 从 Python : macros may be disabled 运行 VBA 代码

    excel - 如何在 Excel 中每两位数字后添加一个逗号和空格,然后格式化文本?