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