Soy nuevo en VBA y quiero saber si puedo convertir la siguiente declaración y asignación en una línea:
Dim clientToTest As String
clientToTest = clientsToTest(i)
o
Dim clientString As Variant
clientString = Split(clientToTest)
vba
variable-declaration
Ian R. O'Brien
fuente
fuente
Puede hacer eso con los objetos, como se muestra a continuación.
Pero no con cadenas o variantes.
fuente
:
. Existen algunas limitaciones, ya que no puede tener múltiples declaraciones de valor en la misma línea (es decirvar1 = val1: var2 = val2
). Se generará errores esporádicamente y le permitirá hacer este tipo de asignación a veces, pero en general no es sugerido por esta notación.Dim x As New T
sintaxis, que solo funciona con objetos.dim str as String: str = "value"
ydim str as Worksheet: set str = ActiveWorkbook.worksheets("Sheet1")
ambos trabajan repetidamente. Sindim ws as New Worksheet: set ws = ActiveWorkbook.Worksheets("Sheet1")
embargo , si hago una instanciación de objetos, se produciría un error como cualquier otra operación no válida en VBA.New
palabra clave no lo hace. Eso es todo lo que digo.de hecho, puedes, pero no de esa manera.
Y puede establecer las variables de manera diferente al llamar al sub, o dejarlas en sus valores predeterminados.
fuente
En algunos casos, toda la necesidad de declarar una variable se puede evitar mediante el uso de la
With
instrucción .Por ejemplo,
esto puede reescribirse como
fuente
Puede definir y asignar valor como se muestra a continuación en una línea. He dado un ejemplo de dos variables declaradas y asignadas en una sola línea. si el tipo de datos de múltiples variables es el mismo
fuente