Resumen
Este artículo contiene procedimientos de Ejemplo de Microsoft Visual Basic para Aplicaciones que puede usar para trabajar con varios tipos de matrices.
Más información
Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas. NOTA: En procedimientos de Visual Basic para Aplicaciones, las palabras después del apóstrofo (') son comentarios.
Para rellenar una matriz y, después, copiarla en una hoja de cálculo
-
Abra un libro nuevo e inserte una hoja de módulo de Visual Basic.
-
Escriba el código siguiente en la hoja de módulos.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Seleccione Hoja1.
-
En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
-
En el cuadro de diálogo Macro, haga clic en Sheet_Fill_Array y luego en Ejecutar.
Para tomar valores de una hoja de cálculo y rellenar la matriz
-
Escriba valores en Hoja1 en las celdas A1:A10.
-
En una hoja de módulo de Visual Basic, escriba el código siguiente:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Seleccione Hoja1.
-
En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
-
En el cuadro de diálogo Macro, haga clic en from_sheet_make_array y, a continuación, haga clic en Ejecutar.
Para pasar y recibir una matriz
-
En una hoja de módulo, escriba el código siguiente:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Seleccione Hoja1 y resalte el rango A1:A10.
-
En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
-
En el cuadro de diálogo Macro, haga clic en pass_array y, a continuación, haga clic en Ejecutar.
Para comparar dos matrices
-
Cree dos rangos con nombre en Hoja1. Asigne un nombre a un rango1 y al otro rango2.
Por ejemplo, resalte el rango de celdas A1:A10 y asímbralo rango1; resalte el rango de celdas B1:B10 y asímbralo rango2. -
Escriba el código siguiente en la hoja de módulos.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Seleccione Hoja2.
-
En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macro.
-
En el cuadro de diálogo Macro, haga clic en compare_two_array y, a continuación, haga clic en Ejecutar.
Verá un cuadro de mensaje para cada comparación.
Para rellenar una matriz dinámica
-
En una hoja de módulo, escriba el código siguiente:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
-
En el cuadro de diálogo Macro, haga clic en fill_array y, a continuación, haga clic en Ejecutar.
NOTA: Cambiar la variable "number_of_elements" determinará el tamaño de la matriz.