2010-07-15 9 views

Respuesta

165

Desafortunadamente, no hay una abreviatura en VBA. Lo más parecido que obtendrá será algo puramente visual utilizando el carácter de continuación : si lo quiere en una línea para facilitar la lectura;

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

+1, recuerdo que Microsoft sugirió durante la creación de .NET que los desarrolladores de VB6 comiencen a hacer esto para prepararnos para VB.NET. –

13

Puede ordenar de hacer eso con los objetos, como en el siguiente.

Dim w As New Widget 

Pero no con cadenas o variantes.

+0

Esto no es correcto, como un todo. Puede declarar e inicializar una variable en la misma línea con cualquier tipo de datos (valor u objeto), simplemente separando la "acción" con el semi-color ':'. Hay algunas limitaciones ya que no puede tener declaraciones de valores múltiples en la misma línea (es decir, 'var1 = val1: var2 = val2'). Se activará de forma esporádica y le permitirá realizar este tipo de tareas a veces, pero en su conjunto no es sugerido por esta notación. – GoldBishop

+1

@GoldBishop, sí, usar los dos puntos para combinar múltiples instrucciones en una sola línea generalmente funciona (como dijo Alex K.) Lo que estoy diciendo que no funcionará con cadenas o variantes (o probablemente con otras primitivas) es la sintaxis 'Dim x As New T', que solo funciona con objetos. –

+0

Sí, no funcionará en una línea de Inicialización de Constructor, pero funcionará con asignaciones de Variant y String. Lo uso todo el tiempo para Value Types y algunos Object Types. 'dim str como String: str =" value "' y 'dim str como Worksheet: set str = ActiveWorkbook.worksheets (" Sheet1 ")' ambos funcionan repetidamente. Aunque, si hago una instanciación de Objeto 'dim ws como Nueva Hoja de Trabajo: configure ws = ActiveWorkbook.Worksheets (" Hoja1 ")' error como cualquier otra operación no válida en VBA. – GoldBishop

2

de hecho, puede, pero no de esa manera.

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

'code... 

End Sub 

Y puede establecer las variables de manera diferente al llamar al sub o dejarlas en sus valores predeterminados.

+1

Esto es para argumentos, no para variables locales. –

Cuestiones relacionadas