2010-07-15 22 views

Antwort

165

Es gibt leider keine Kurzschreibweise in VBA. Das nächste, was Sie bekommen, ist eine rein visuelle Sache mit dem Fortsetzungszeichen :, wenn Sie es in einer Zeile für die Lesbarkeit wollen;

Dim clientToTest As String: clientToTest = clientsToTest(i) 
Dim clientString As Variant: clientString = Split(clientToTest) 
+9

+1, ich erinnere mich an Microsoft vorgeschlagen während der Aufbau zu .NET, dass VB6-Entwickler beginnen, dies tun, um uns bereit für VB.NET. –

13

Sie tun das mit Objekten-of sortieren, wie im Folgenden.

Dim w As New Widget 

Aber nicht mit Strings oder Varianten.

+0

Dies ist als Ganzes nicht korrekt. Sie können eine Variable in derselben Zeile mit einem beliebigen Datentyp (Wert oder Objekt) deklarieren und initialisieren, indem Sie einfach die "Aktion" mit dem Semikolon ': trennen. Es gibt einige Einschränkungen, da Sie nicht mehrere Wertdeklarationen in derselben Zeile haben können (zB 'var1 = val1: var2 = val2'). Es wird speradisch abfallen und Ihnen erlauben, diese Art von Aufgabe manchmal zu tun, aber als Ganzes nicht von dieser Notation vorgeschlagen. – GoldBishop

+1

@GoldBishop, ja, die Verwendung des Doppelpunkts, um mehrere Anweisungen in einer einzigen Zeile zu kombinieren, funktioniert im Allgemeinen (wie Alex K. sagte). Was ich sage, wird nicht mit Strings oder Varianten arbeiten (oder wahrscheinlich auch mit anderen Primitiven) ist die "Dim x As New T" -Syntax, die nur mit Objekten funktioniert. –

+0

yeah wird nicht an einer Constructor Initialization Zeile arbeiten, aber es wird mit Variant und String Zuweisungen funktionieren. Ich benutze es die ganze Zeit für Werttypen und einige Objekttypen. 'dim str als String: str =" value "' und 'dim str als Arbeitsblatt: set str = ActiveWorkbook.worksheets (" Sheet1 ")' funktionieren beide wiederholt. Obwohl, wenn ich eine Objektinstanzierung mache, dim ws als neues Arbeitsblatt: set ws = ActiveWorkbook.Worksheets ("Sheet1") 'würde Fehler wie eine andere ungültige Operation in VBA. – GoldBishop

2

in der Tat können Sie, aber nicht so.

Und Sie können die Variablen anders festlegen, wenn Sie das Sub aufrufen, oder lassen Sie sie auf ihren Standardwerten.

+1

Dies ist für Argumente, nicht für lokale Variablen. –

Verwandte Themen