Ejemplos de macro de Visual Basic para trabajar con matrices

Seleccione idioma Seleccione idioma
Id. de artículo: 291069 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E291069
Para obtener una versión de este artículo para Microsoft Excel 2000, vea 213798.
Para obtener una versión de este artículo para Microsoft Excel 98 y versiones anteriores, vea 149689.
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo contiene procedimientos de ejemplo de Microsoft Visual Basic para Aplicaciones que puede utilizar para trabajar con varios tipos de matrices.

Más información

Microsoft proporciona ejemplos de programación sólo como ilustración, 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 los procedimientos de Visual Basic para Aplicaciones, las palabras después del apóstrofo (') son comentarios.

Rellenar una matriz y copiarla en una hoja de cálculo

  1. Abra un cuaderno nuevo e inserte una hoja de módulo de Visual Basic.
  2. Escriba el siguiente código en la hoja de módulo.
    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
    					
  3. Seleccione Sheet1.
  4. En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
  5. En el cuadro de diálogo Macro, haga clic en Sheet_Fill_Array y, a continuación, haga clic en Ejecutar.

Tomar los valores de una hoja de cálculo y rellenar la matriz

  1. Escriba los valores en Sheet1 en las celdas A1:A10.
  2. 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
    					
  3. Seleccione Sheet1.
  4. En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
  5. En el cuadro de diálogo Macro, haga clic en from_sheet_make_array y, a continuación, haga clic en Ejecutar.

Pasar y recibir una matriz

  1. En la 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
    					
  2. Seleccione Sheet1 y resalte el rango A1:A10.
  3. En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
  4. En el cuadro de diálogo Macro, haga clic en pass_array y, a continuación, haga clic en Ejecutar.

Comparar dos matrices

  1. Cree dos rangos con nombre en Sheet1. Denomine range1 a uno y range2 al otro.

    Por ejemplo, resalte el rango de celdas A1:A10 y denomínelo range1; resalte el rango de celdas B1:B10 y denomínelo range2.
  2. Escriba el siguiente código en la hoja de módulo.
    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
    					
  3. Seleccione Sheet2.
  4. En el menú Herramientas, seleccione Macro y haga clic en Macro.
  5. 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.

Rellenar una matriz dinámica

  1. En la 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
    					
  2. En el menú Herramientas, seleccione Macro y, a continuación, haga clic en Macros.
  3. En el cuadro de diálogo Macro, haga clic en fill_array y, a continuación, haga clic en Ejecutar.
NOTA: al cambiar la variable "number_of_elements", se determinará el tamaño de la matriz.

Propiedades

Id. de artículo: 291069 - Última revisión: martes, 22 de mayo de 2007 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Palabras clave: 
kbdtacode kbhowto kbprogramming KB291069

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com