Jonathan está creando una macro y necesita llenar un rango de celdas con valores. Por ejemplo, si necesita llenar el rango A1: C1, actualmente se necesitan tres declaraciones para llenar ese rango:

Range("A1") = "Test1"

Range("B1") = "Test2"

Range("C1") = "Test3"

Se pregunta si hay alguna forma de completarlos en una sola declaración, similar a la siguiente:

Range("A1:C1") = ("Test1","Test2","Test3")

La sintaxis deseada por Jonathan está cerca, pero no funcionará. Así es como funcionará:

Range("A1:C1") = Array("Test1","Test2","Test3")

Tenga en cuenta el uso de la instrucción Array, que le dice a VBA que lo que sigue debe considerarse una secuencia de valores que se usará en la secuencia de celdas a la izquierda del operador. Curiosamente, podría introducir valores en variables y también usar la instrucción Array, como se muestra aquí:

sOne = "Apples"

sTwo = "Oranges"

sThree = "Artichokes"

Range("A1:C1") = Array(sOne, sTwo, sThree)

También puede trabajar con variables directas, si lo prefiere:

Dim sMyStrings(2) As String sMyStrings(0) = "Apples"

sMyStrings(1) = "Oranges"

sMyStrings(2) = "Artichokes"

Range("A1:C1") = sMyStrings

El código anterior también podría reescribirse de la siguiente manera:

Dim sMyStrings(2) As String sMyStrings = Array("Apples", "Oranges", "Artichokes")

Range("A1:C1") = sMyStrings

Finalmente, si quisiera tener los valores colocados en una sola columna en lugar de en una fila, necesitaría usar la función Transponer, de esta manera:

Range("A1:A3") = Application.Transpose(Array("Test1","Test2","Test3"))

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (11702) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.

Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Filling_a_Range_of_Cells_with_Values ​​[Llenando un rango de celdas con valores].