Как я могу использовать дополнительный аргумент Array в процедуре VBA?

У меня есть частная процедура в сценарии VBA для Доступа MS:

Private Sub drawLineDiagram(chartSpace As Variant, title As String, caption As String, x_val() As Variant, y_val() As Variant, Optional y_val2() As Variant = ????)

Как Вы видите, я хочу иметь дополнительный последний параметр для массива значений.

Какой параметр по умолчанию я должен присвоить? Если я делаю это с дополнительным целочисленным значением и присваиваю его, например, 0 это - весь штраф.

Если я делаю это с массивом как показано выше и присваиваю массив, строка отмечена красная => как ошибка (и это не скомпилирует).

8
задан Jean-François Corbett 3 September 2014 в 10:48
поделиться

3 ответа

IDE может быть не очень полезной, но справка (на этот раз) содержит ответ:
ParamArray
Необязательно. Используется только в качестве последнего аргумента в списке аргументов, чтобы указать, что последний аргумент является необязательным массивом элементов Variant. Ключевое слово ParamArray позволяет указать произвольное количество аргументов. ParamArray нельзя использовать с ByVal, ByRef или Optional.

1
ответ дан 5 December 2019 в 10:02
поделиться

Если вам нужен дополнительный массив в VBA, объявите его как вариант без спецификатора массива, но получите к нему доступ в любом случае как массив. Таким образом, вы получите вариант (единственная переменная), который содержит массив из вариантов , а не только массив из вариантов . Значение по умолчанию не требуется:

Private Sub drawLineDiagram(chartSpace As Variant, title As String, caption As String, x_val As Variant, y_val As Variant, Optional y_val2 As Variant)

Для единообразия также объявите как простой вариант два других параметра.

Если вы ненавидите IDE, не используйте ее. Используйте блокнот. Затем вставьте написанный код.

11
ответ дан 5 December 2019 в 10:02
поделиться

Возможно, вам нужен массив параметров:

В объявлении процедуры определите список параметров обычным способом. Все параметры кроме последнего, должен быть обязательным (не обязательно (Visual Basic)).

Перед последним именем параметра ставьте ключевые слова ByVal ParamArray. Этот параметр автоматически является необязательным. Не включайте необязательное ключевое слово.

- Как: перегрузить процедуру, которая принимает неопределенное количество параметров (Visual Basic)

Справочник по VBA: Общие сведения о массивах параметров

5
ответ дан 5 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: