У меня есть следующая подпрограмма, которую я перебираю при запуске полной рабочей книги.То, что я пытаюсь сделать, это создать словарь, который записывается в подпрограмму, а затем также доступен в подпрограмме, чтобы получить максимальное значение.Если я создаю словарь в подпрограмме, он перезаписывается построчно, поэтому я не могу получить максимальное значение, если я создаю словарь в другом подпрограмме, у меня возникают проблемы с записью в него.Что вы предлагаете?
Private Sub CalculateCoordinates(sThread, node As IXMLDOMNode)
Dim parent_node As IXMLDOMNode, x As Integer, y As Integer,
y_max_branch As Integer, nList As IXMLDOMNodeList
Dim StepId As String, strXpath As String
Dim inputer, inputer2, inputer3, inputer4 As String
Dim stry As String
Dim dict As Scripting.Dictionary
set dict = New Scripting.Dictionary
add.dict y , x
debug.print Application.WorksheetFunction.Max(dict.keys)
Call AddCoordinates(node, x, y)
End Sub
Спасибо за ответы, я изменил код соответствующим образом, но я все еще получаю перезаписываемый словарь в каждой строке.Я считаю, что это вызывает это: - Установите dctCurrent = Новый словарь Где я могу определить его из подпрограммы, чтобы остановить его перезапись каждой строки?
Public dctCurrent As Dictionary
Debug.Print "max ITEM:- "; Application.Max(dctCurrent.Items)
Call EntryProcToMyLogic(x, y)
Call AddCoordinates(node, x, y)
End Sub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Public Sub EntryProcToMyLogic(x, y)
Set dctCurrent = New Dictionary
Call CalculateCoordinates()
dctCurrent.Add x, y
Debug.Print "max KEY:- "; Application.Max(dctCurrent.Keys)
Debug.Print "max ITEM:- "; Application.Max(dctCurrent.Items)
End Sub