VBA Deep Clone Dictionary
The solution for “VBA Deep Clone Dictionary” can be found here. The following code will assist you in solving the problem.
‘ 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
More questions on [categories-list]
- checking and changing system volume vb.net checking and changing system volume vb.net
- selecttoken em vbnet e json
- how to call gcd in vba
- pivot data source not accepting table named range vba
- Excel PasteSpecial Format:= can’t find the argument
- refresh token em vb net
- menus act like radio buttons vb.net
- power query M substract minimum value of column -dax
- how to concatenate more than 40 lines in vba how to concatenate more than 40 lines in vba
- discern between file and folder given path vb.net
- putting marquee in vb.net
- code for reading letters only in vb 6
- vba array dimensions
- text to speech vb.net
- set datetimepicker value to null vb
- how to correct a number to 2 decimal places in vba
- System.Data.OleDb.OleDbException: ‘No value given for one or more required parameters.’
- vba file chooser
- vba code to add new column in table
- how save excel through visual basic
- make your computer talk vbscript
- for i in range vba
- vbnet make a string to unicode converter
- create new worksheet excel visual basic
- vba sendkeys
- vba is integer
- remove series name from legendvbnet
- priavte sub with multiple handels find sneder
- openfiledialog specific folder
- vbnet check if string is only symbols
- tester si une case est vide vba
- vbnet check if number is even or odd
- find days in month vba
- excel vba multiply cell value
- sort dictionary by key vba
- excel vba delete columns in range excel vba delete columns on another sheet
- VBA – Print Whole Workbook VBA – Print Whole Workbook
- excel vba formatconditions range
- VBA Dictionary Data Type
- excel vba assign shortcut key to button
- vba comment shortcut vba comment shortcut
- build an index all files of a FTP site
- vbnet find highest value in chart
- vb net dgv doesn’t keep currency format
- delete all controls from list of control vb.net delete all controls in an area vb
- vlookup columns not next to each other
- how to get value from clipboard in vbnet
- afficher un message d’erreur vba
- VBA Sort RossetaCode
- vba string length