Вопрос:
При написании VBA мне нравятся небольшие вспомогательные методы, которые я могу вызвать в определенных точках цикла разработки. Моей самой полезной является функция, вдохновленная функцией Laravel dd($variable) – die и dump. Другими словами, выплюнуть выход переменной, а затем уничтожить процесс, чтобы никакая другая обработка не имела место. Я использую его как способ установки контрольных точек.
Теперь мой текущий пользовательский помощник может сбрасывать переменную, а также массив, но как я могу заставить его работать и для коллекции?
»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»’ ‘ Die and Dump »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»’ Function dd(value As Variant) Dim ArrayBoolean As Boolean Dim i As Integer ArrayBoolean = IsArray(value) ‘ Commence to dumping the data If ArrayBoolean = True Then For i = LBound(value) To UBound(value): Debug.Print (value(i)): Next Else Debug.Print (value) End If ‘ Now Die! End End Function
Я пробовал следующее:
»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»’ ‘ Die and Dump a Collection »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»’ Function ddc(value As Collection) Dim coll As Variant ‘ Dump For Each coll In value Debug.Print coll Next coll ‘ Now Die! End End Function
Но когда я делаю Helpers.ddc(objectsInWorkbook) я получаю Argument not optional ошибку. Helpers.dd(objectsInWorkbook.count) возвращает целое число в 5 (количество объектов в коллекции)
Лучший ответ:
Вместо
Helpers.ddc (objectsInWorkbook)
использование
Helpers.ddc objectsInWorkbook Ответ №1
Вы должны вызвать функцию вместо того, чтобы просто набрав Helpers.dd(objectsInWorkbook).
Call Helpers.ddc(objectsInWorkbook)