我有两个字典都包含字符串值。一个包含观察到的电线杆电气缺陷,另一个包含观察到的结构缺陷,特定于不同的工作人员。我想同时打印所有这些字典键并且彼此相邻。这是我真正知道如何引用字典键的唯一方法:
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
将创建字典中键的从零开始的一维数组。 v3
),但您可以直接写入工作表。后者会慢得多。你可以写v3
填充工作表后,只需一步即可。 v3
是一个从一开始的二维数组来对应工作表,所以要调整索引I
取决于您引用的数组。我就是这样做的,如果你愿意,你可以Dim v3
作为从零开始的数组,并使用 v(0,1-4) 作为列标题。 关于excel - 同时打印两个独立字典的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535621/