Wie kann ich ein optionales argument array in einer VBA-Prozedur?
Habe ich eine private-Prozedur in ein VBA-script für MS Access:
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 = ????)
Wie Sie sehen, ich will einen optionalen letzten parameter ein array von Werten.
Welche Art von default-parameter muss ich zuweisen? Wenn ich es mit einem optionalen integer-Wert und weisen Sie ihn z.B. 0 es ist alles in Ordnung.
Wenn ich es mit einem array, wie oben gezeigt wird, und weisen Sie ein array ist, wird die Zeile rot markiert => so ein Fehler (und es wird nicht kompiliert).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie ein optionales array in VBA deklarieren Sie es als
Variant
ohne array specificator, aber Zugriff als array sowieso. Auf diese Weise erhalten Sie eineVariant
(einzelne variable), die enthält ein array vonVariant
s, im Gegensatz zu array vonVariant
s. Nein default-Wert:Konsistenz, auch erklären als nur
Variant
s die anderen zwei Parameter.Wenn Sie hassen die IDE, verwenden Sie es nicht.
Verwenden Sie Editor. Fügen Sie code geschrieben.
Vielleicht möchten Sie ein Parameter-Array:
-- Gewusst wie: Überladen einer Prozedur, die Dauert eine Unbestimmte Anzahl von Parametern (Visual Basic)
Referenz für VBA: Verständnis parameter-arrays
Den IDE-möglicherweise nicht von großem nutzen, sondern auch die Hilfe (für einmal) enthält die Antwort:
ParamArray
Optional ist. Wird nur als letztes argument in arglist, um anzugeben, dass das Letzte argument ist ein Optionales array von Variant-Elementen. Das ParamArray-Schlüsselwort ermöglicht es Ihnen, eine beliebige Anzahl von Argumenten. ParamArray kann nicht verwendet werden mit ByVal, ByRef oder Optional sind.