2010-07-15 21 views

risposta

165

Sfortunatamente, in VBA non esiste una stenografia, il più vicino si ottiene è una cosa puramente visiva utilizzando il carattere di continuazione : se lo si desidera su una riga per la leggibilità;

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

+1, ricordo che Microsoft suggerì durante la compilazione su .NET che gli sviluppatori VB6 iniziarono a fare questo per prepararci per VB.NET. –

13

È possibile ordinare-di farlo con gli oggetti, come nel seguito.

Dim w As New Widget 

Ma non con stringhe o varianti.

+0

Questo non è corretto, nel suo insieme. Puoi dichiarare e inizializzare una variabile sulla stessa linea con qualsiasi tipo di dati (valore o oggetto), semplicemente separando "azione" con il semi-colo ':'. Esistono alcune limitazioni poiché non è possibile avere più dichiarazioni di valori sulla stessa riga (ad esempio 'var1 = val1: var2 = val2'). Scatterà in modo spericolato e ti permetterà di fare questo tipo di incarichi a volte, ma nel complesso non è suggerito da questa notazione. – GoldBishop

+1

@GoldBishop, sì, utilizzando i due punti per combinare più istruzioni in una singola riga generalmente funziona (come ha detto Alex K.). Quello che sto dicendo non funzionerà con stringhe o varianti (o probabilmente con altre primitive) è la sintassi 'Dim x As New T', che funziona solo con gli oggetti. –

+0

yeah non funzionerà su una riga di inizializzazione del costruttore ma funzionerà con le assegnazioni Variant e String. Lo uso sempre per i tipi di valore e alcuni tipi di oggetto. 'dim str as String: str =" value "' e 'dim str as Foglio di lavoro: set str = ActiveWorkbook.worksheets (" Sheet1 ")' funzionano entrambi ripetutamente. Anche se, se eseguo un oggetto di istanziazione 'dim ws come nuovo foglio di lavoro: set ws = ActiveWorkbook.Worksheets (" Foglio1 ")' errore come qualsiasi altra operazione non valida in VBA. – GoldBishop

2

infatti, è possibile, ma non in questo modo.

Sub MySub(Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True) 

'code... 

End Sub 

Ed è possibile impostare le variabili in modo diverso quando si chiama il sottotitolo o lasciarli ai valori predefiniti.

+1

Questo è per argomenti, non variabili locali. –

Problemi correlati