Vba Deep Clone Dictionary

[Solved] Vba Deep Clone Dictionary | Vb - Code Explorer | yomemimo.com
Question : VBA Deep Clone Dictionary

Answered by : pleasant-penguin-a1agtwz4bgfu

' Compare mode for cloning dictionary object
' See CloneDictionary function
Public Enum eCompareMethod2 ecmBinaryCompare = 0 ecmTextCompare = 1 ecmDatabaseCompare = 2 ' Added this to use original compare method ecmSourceMethod = 3
End Enum
'---------------------------------------------------------------------------------------
' Procedure : CloneDictionary
' Author : Adam Waller
' Date : 3/30/2021
' Purpose : Recursive function to deep-clone a dictionary object, including nested
' : dictionaries.
' : NOTE: All other object types are cloned as a reference to the same object
' : referenced by the original dictionary, not a new object.
'---------------------------------------------------------------------------------------
'
Public Function CloneDictionary(dSource As Dictionary, _ Optional Compare As eCompareMethod2 = ecmSourceMethod) As Dictionary Dim dNew As Dictionary Dim dChild As Dictionary Dim varKey As Variant ' No object returned if source is nothing If dSource Is Nothing Then Exit Function ' Create new dictionary object and set compare mode Set dNew = New Dictionary If Compare = ecmSourceMethod Then ' Use the same compare mode as the original dictionary. dNew.CompareMode = dSource.CompareMode Else dNew.CompareMode = Compare End If ' Loop through keys For Each varKey In dSource.Keys If TypeOf varKey Is Dictionary Then ' Call this function recursively to add nested dictionary Set dChild = varKey dNew.Add varKey, CloneDictionary(dChild, Compare) Else ' Add key to dictionary dNew.Add varKey, dSource(varKey) End If Next varKey ' Return new dictionary Set CloneDictionary = dNew
End Function

Source : https://stackoverflow.com/questions/3022182/how-do-i-clone-a-dictionary-object | Last Update : Thu, 16 Sep 21

Answers related to vba deep clone dictionary

Code Explorer Popular Question For Vb