Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Ejemplos de macro de Visual Basic para trabajar con matrices

Ha finalizado el soporte técnico para Office 2003

Microsoft puso fin al soporte técnico para Office 2003 el 8 de abril de 2014. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

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.
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   WendEnd 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 SubSub receive_array(thisarray)   counter = 1   While counter <= UBound(thisarray)      MsgBox thisarray(counter, 1)      counter = counter + 1   WendEnd 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   WendEnd 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   WendEnd 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.
copy paste visual basic editor inf XL2002 XL2003 XL2007
Propiedades

Id. de artículo: 291069 - Última revisión: 05/22/2007 18:37:16 - Revisión: 4.1

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition

  • kbdtacode kbhowto kbprogramming KB291069
Comentarios
e"> España - Español
Paraguay - Español
Venezuela - Español
://c1.microsoft.com/c.gif?DI=4050&did=1&t=">content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> ">