Ich bin neu in VBA und möchte wissen, ob ich die folgende Deklaration und Zuordnung in eine Zeile konvertieren kann:
Dim clientToTest As String
clientToTest = clientsToTest(i)
oder
Dim clientString As Variant
clientString = Split(clientToTest)
Ich bin neu in VBA und möchte wissen, ob ich die folgende Deklaration und Zuordnung in eine Zeile konvertieren kann:
Dim clientToTest As String
clientToTest = clientsToTest(i)
oder
Dim clientString As Variant
clientString = Split(clientToTest)
Antworten:
Leider gibt es in VBA keine Abkürzung. Das nächste, was Sie erhalten, ist eine rein visuelle Verwendung des :
Fortsetzungszeichens, wenn Sie es zur besseren Lesbarkeit in einer Zeile verwenden möchten.
Dim clientToTest As String: clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)
Hinweis (Zusammenfassung anderer Antworten / Kommentare): Funktioniert auch mit Objekten (Excel 2010):
Dim ws As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"
Sie können dies mit Objekten wie im Folgenden tun.
Dim w As New Widget
Aber nicht mit Strings oder Varianten.
:
. Es gibt einige Einschränkungen, da Sie nicht mehrere Wertdeklarationen in derselben Zeile (dh var1 = val1: var2 = val2
) haben können. Es wird speradisch ausfallen und es Ihnen ermöglichen, diese Art von Zuweisung manchmal durchzuführen, aber insgesamt nicht durch diese Notation vorgeschlagen.
Dim x As New T
Syntax, die nur mit Objekten funktioniert.
dim str as String: str = "value"
und dim str as Worksheet: set str = ActiveWorkbook.worksheets("Sheet1")
beide arbeiten wiederholt. Wenn ich jedoch eine Objektinstanziierung mache, dim ws as New Worksheet: set ws = ActiveWorkbook.Worksheets("Sheet1")
würde dies wie bei jeder anderen ungültigen Operation in VBA fehlschlagen.
New
Schlüsselwort nicht. Das ist alles, was ich sage.
in der Tat können Sie, aber nicht so.
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
Und Sie können die Variablen beim Aufrufen des Subwoofers unterschiedlich festlegen oder auf ihre Standardwerte setzen.
In einigen Fällen kann die gesamte Notwendigkeit, eine Variable zu deklarieren, durch die Verwendung einer Anweisung vermieden werdenWith
.
Beispielsweise,
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show Then
'use fd.SelectedItems(1)
End If
Dies kann umgeschrieben werden als
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
'use .SelectedItems(1)
End If
End With