Je suis nouveau dans VBA et veux savoir si je peux convertir la déclaration et l'affectation suivantes en une seule ligne:
Dim clientToTest As String
clientToTest = clientsToTest(i)
ou
Dim clientString As Variant
clientString = Split(clientToTest)
Malheureusement, il n’ya pas d’abrégé dans VBA. Le plus proche que vous obtiendrez est une chose purement visuelle utilisant le caractère de continuation :
si vous le voulez sur une ligne pour la lisibilité;
Dim clientToTest As String: clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)
Astuce (résumé des autres réponses/commentaires): Fonctionne aussi avec les objets (Excel 2010):
Dim ws As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"
Vous pouvez en quelque sorte le faire avec des objets, comme dans ce qui suit.
Dim w As New Widget
Mais pas avec des chaînes ou des variantes.
en fait, vous pouvez, mais pas comme ça.
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
Et vous pouvez définir les variables différemment lorsque vous appelez le sous-marin ou les laisser à leurs valeurs par défaut.
Dans certains cas, il est possible d'éviter la nécessité de déclarer une variable en utilisant instruction With
.
Par exemple,
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show Then
'use fd.SelectedItems(1)
End If
cela peut être réécrit comme
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
'use .SelectedItems(1)
End If
End With