2
我有一个字典问题。如果我将一个对象添加到字典中,它会用添加的项目覆盖整个包含的项目。VBA词典 - 添加项目会覆盖所有项目
添加完所有元素后,Dictionary包含正确数量的项目,但项目都是最后添加的项目。
For Each shp In pg.Shapes
Dim tmp As New cls_dtyp_link
//Filling tmp with Variables - not Displayed - tmp.link_obj is the Key
If link_dic.Exists(tmp.link_obj) Then
Debug.Print "not added:" & tmp.link_obj
Else
link_dic.Add tmp.link_obj, tmp
End If
Next
的cls_dtyp_link类:
Public link_ne As String
Public link_obj As String
Public link_ref As Visio.Shape
Public obj_left As String
Public obj_right As String
Public ref_left As Visio.Shape
Public ref_right As Visio.Shape
Public basekey_left As String
Public basekey_right As String
Public root_site_ne_left As String
Public root_site_ne_right As String
Public root_obj_left As String
Public root_obj_right As String
Public ref_root_left As Visio.Shape
Public ref_root_right As Visio.Shape
Public hops As Integer
Public geht_zu_konzentrator As Boolean
谢谢您的帮助!
或者,应该使用'Dim tmp As cls_dtyp_link'后跟'set tmp = new cls_dtyp_link'来代替'Dim tmp As New cls_dtyp_link'。 – shahkalpesh
@shahkalpesh是的,第二段建议这(我会声明对象的循环外)。 – Ioannis
@shahkalpesh&@loannis感谢它的工作! 我不得不在循环之外将Dim tmp as cls_dtyp_link'和循环开始处的Set tmp = New cls_dtyp_link'。在循环结束'Set cls_dtyp_link = Nothing' – Axel