• Latest
  • Trending
  • All
  • News
  • Business
  • Politics
  • Science
  • World
  • Lifestyle
  • Tech

VBA – Declarar (Dim), Crear e Inicializar una Variable Tipo Matriz

April 25, 2022

¿Qué hace un licenciado en administración de empresas?

May 22, 2022

LICENCIA DE PRIMERA OCUPACIÓN: SOLICITUD, PRECIO Y TRÁMITES

May 22, 2022

¿Qué es la licenciatura en educación?

May 22, 2022

Renovación de licencia de conducir en Colorado: una guía paso a paso

May 22, 2022

💚 LICENCIATURA GRATIS EN GASTRONOMÍA 

May 22, 2022

Conducir en Italia – guia completa

May 22, 2022

Conducir en Reino Unido: Guía Completa

May 21, 2022

¿Cómo obtener la licencia de conducir en Venezuela?

May 21, 2022

Qué es licenciatura en trabajo social

May 21, 2022

Solicitud de licencia de manejar nueva (conductores de 18 años o más) in New York

May 21, 2022

¿Qué es el número del carnet de conducir y para qué sirve?

May 21, 2022

¿Qué hace un Licenciado en Derecho?

May 21, 2022
  • Business
  • Science
  • Health
  • Entertainment
  • Sports
Saturday, May 28, 2022
  • Login
Flicjr
  • Home
  • Entertainment
  • Sports
  • Science
  • Health
  • Business
No Result
View All Result
Flicjr
No Result
View All Result
Home general

VBA – Declarar (Dim), Crear e Inicializar una Variable Tipo Matriz

by Admin
April 25, 2022
in general
0


In this Article

  • ¿Qué es una variable de matriz en VBA?
  • Matrices estáticas
    • Índices de matrices
  • Matrices dinámicas
  • Matrices tipo Variantes
  • Declarar matrices públicas y de módulos
    • Declarando una Matriz Pública
  • Inicializar Arrays
    • Función Array
    • Llenar la matriz con un bucle
  • Reiniciar Matrices
    • Usando ReDim
    • Usando ReDim Preserve

Este tutorial demostrará cómo declarar (Dim), crear e inicializar variables de matriz en VBA

Table of Contents

  • ¿Qué es una variable de matriz en VBA?
  • Matrices estáticas
    • Índices de matrices
  • Matrices dinámicas
  • Matrices tipo Variantes
  • Declarar matrices públicas y de módulos
    • Declarando una Matriz Pública
  • Inicializar Arrays
    • Función Array
    • Llenar la matriz con un bucle
  • Reiniciar Matrices
    • Usando ReDim
    • Usando ReDim Preserve
  • Videos
    • Related posts:

¿Qué es una variable de matriz en VBA?

Una variable de matriz en VBA puede ser considerada como un grupo de variables, almacenadas bajo el mismo nombre y con el mismo tipo de datos. Una matriz puede almacenar texto, números u objetos.

Para referirse a un elemento de una matriz se utiliza su número de índice.

Puedes declarar una variable de matriz de la misma manera que declararías cualquier otra variable utilizando las palabras clave Dim, Static, Public o Private.

Matrices estáticas

Hay dos tipos de matrices: estáticas y dinámicas. Una matriz estática se declara con su tamaño especificado cuando se declara inicialmente la matriz. También se le llama Matriz Fija.

Dim intA(4) as integer

La matriz anterior se declara utilizando la sentencia Dim a nivel de Procedimiento o Módulo, y el tamaño de la matriz es 5 ya que no hemos declarado el valor LBound de la Matriz. No, ¡no es un error tipográfico! El tamaño de la matriz es 5, a pesar de haber introducido 4 en el array. Esto se debe a que los índices de la matriz comienzan automáticamente en cero.

Índices de matrices

Los índices de las matrices comienzan automáticamente en cero a menos que se declare la Opción Base 1 en la parte superior de su módulo de código.

Si se declara la opción Base 1, las matrices comenzarán automáticamente en 1. Sin embargo, considero que declarar variables de esta manera es problemático. Los revisores de código pueden no ser conscientes de que las matrices empiezan en cero o de la declaración de la Opción Base 1 En su lugar, prefiero declarar explícitamente las posiciones inicial y final de los arrays:

Dim intA(2 to 5) as integer

Fíjate que al hacerlo, puedes empezar el array en cualquier número (no sólo en el 1 o el 0).

RELATED:  ¿Qué es la licenciatura en optometrista?

Matrices dinámicas

Una variable de matriz dinámica es una matriz cuyo tamaño puede cambiarse en tiempo de ejecución. Las variables dinámicas se declaran sin tamaño.

Dim intA() as integer

Puedes usar la sentencia ReDim para especificar el tamaño de la matriz después de que haya sido creada.

ReDim intA(2)

Se puede cambiar el tamaño de una matriz dinámica en cualquier momento. Sin embargo, cuando se utiliza la sentencia ReDim, se borran todos los valores existentes. Para conservar los valores existentes de la matriz, utilice ReDim Preserve en su lugar.

ReDim Preserve intA(2)

Puede declarar una matriz dinámica a nivel de Procedimiento, Módulo o Global, pero sólo puede utilizar la sentencia ReDim dentro de un Procedimiento.

Matrices tipo Variantes

Las matrices variantes son matrices dinámicas con las que es más fácil trabajar.

Dim varNames()

Observe que no necesita especificar el tipo de datos (se asume que es variante) o el tamaño de la matriz. Como veremos más adelante, puedes inicializar matrices variantes usando la función Array (¡no es necesario redimensionar las matrices primero!)

Declarar matrices públicas y de módulos

Como se muestra arriba, las matrices pueden ser declaradas dentro de procedimientos, para su uso dentro de ese procedimiento:

Sub StaticArray() 'Declarar una matriz con Valor LBound en 1 y Valor UBound de 4 Dim IntA(1 to 4) as IntegerEnd Sub

Pero también se pueden declarar a nivel de Módulo o Global.

Option Explicit 'Declarar una matriz con Valor LBound en 1 y Valor UBound de 4 Dim IntA(1 to 4) as Integer Sub StaticArray()End Sub

En este ejemplo, la variable de la matriz puede ser llamada en cualquier lugar dentro de este módulo de código. En su lugar, puedes declarar una matriz pública que puede ser utilizado en todo tu proyecto VBA (ver la siguiente sección).

Declarando una Matriz Pública

Declaras una matriz estático público como declararías una variable pública.

Public Nombres(3) as String

Esta declaración debe ir en la parte superior de su módulo, debajo de la opción explícita. Puede ser utilizada en todo el proyecto VBA en cualquier módulo o procedimiento.

Si usted declara la matriz en la parte superior del módulo, pero con la palabra clave Dim, entonces el uso de esa matriz está restringido a ese módulo individual. Tratar de usar la matriz en un módulo separado resultaría en un error.

RELATED:  ¿Qué significan y cómo se asignan los números del DNI?

Inicializar Arrays

Puede asignar valores a un array estático de la siguiente manera.

Sub StaticArray()'declarar una matriz estatica con valor LBound de 1 y valor UBound de 4 Dim IntA(1 To 4) As Integer'Inicializar la matriz IntA(1) = 10 IntA(2) = 20 IntA(3) = 30 IntA(4) = 40'Mostrar el resultado de la posición 2 de la matriz en la ventana inmediato Debug.Print IntA(2)End Sub

Si ejecutas el procedimiento anterior, el valor de 20 se mostraría en la ventana inmediata.

También puede asignar los valores a una matriz dinámica de la misma manera

Sub MatrizDinámica()'declarar una matriz dinámica pero omitiendo los valores ligados Dim IntA() As Integer'inicializar la matriz ReDim IntA(1 To 4) IntA(1) = 10 IntA(2) = 20 IntA(3) = 30 IntA(4) = 40'mostrar el resultado de la posición 2 de la matriz en la ventana inmediata Debug.Print IntA(2)End Sub

Función Array

Sin embargo, con el array variante solamente, puede utilizar la Función Array que puede ser más fácil que utilizar el método estándar.

'Llenar la matriz intA() = Array(10, 20, 30, 40)

Llenar la matriz con un bucle

También puede rellenar arrays haciendo un bucle a través de un rango de celdas en Excel

Sub PruebaMatrizDinamicaDesdeExcel()'Declarar la matriz Dim Nombres() As String'Declarar un entero para contar las filas en un rango Dim n As Integer'Declarar un entero para el bucle Dim i As Integer'Contar las filas en el rango n = Range("A1", Range("A1").End(xlDown)).Rows.Count'Redimensionar la matriz a la cantidad de filas en el rango ReDim Nombres(n) For i = 0 To n Nombres(i) = Range("A1").Offset(i + 1, 0) Next i'Mostrar los valores en la matriz MsgBox Join(Nombres())End Sub

Reiniciar Matrices

Puede reiniciar su array en cualquier etapa de su código, pero entonces perderá el valor original contenido en esa posición de su array.

Sub StaticArray() 'declara la matriz con un valor LBound de 1 y un valor UBound de 4 Dim IntA(1 a 4) as Integer 'inicializa la matriz IntA(1) = 10 IntA(2) = 20 IntA(3) = 30 IntA(4) = 40 'mostrar el resultado de la posición 2 de la matriz en la ventana inmediata Debug.Print IntA(2)'vuelve a inicializar la matriz intA(2)= 200 Debug.Print IntA(2) End Sub

En el ejemplo anterior, la matriz estática mantendrá todos los valores, excepto el valor en la posición 2 – ese valor cambiará a 200.

Usando ReDim

Si está utilizando una Matriz Dinámica, la sentencia ReDim se utiliza para establecer el tamaño de su Matriz. Puede utilizar la sentencia ReDim posteriormente en su código para cambiar el tamaño de la matriz tantas veces como necesite. La línea de código de abajo reiniciará la matriz intA para que tenga un tamaño de 2 (Recuerda – ¡un índice de Array comienza en 0!)

ReDim intA(1) as Integer

Así que el código que incluye la declaración ReDim se vería como el ejemplo de abajo.

Sub PruebaMatrizDinamica()'declare la matriz Dim intA() As Integer ReDim intA(2)'rellena la matriz con números intA(0) = 2 intA(1) = 5 intA(2) = 9'muestra el número en la posición 1 Debug.Print intA(1)'redimensiona el array para cambiar el tamaño ReDim intA(3) intA(0) = 6 intA(1) = 8'muestra el número en la posición 1 esta vez Debug.Print intA(1)End Sub

Si ejecutas el procedimiento anterior, el valor de 5 se mostraría en la ventana inmediata, y luego se mostraría un valor de 8 una vez que hayamos redimensionado la matriz usando ReDim y lo hayamos rellenado. Sin embargo, como no hemos llenado IntA(2), y no hemos utilizado ReDim Preserve, el valor en esa posición del array será eliminado y tanto la posición 3 como la 4 del array serán cero.

RELATED:  Psicología organizacional positiva: ¿qué es y cómo conseguir implantarla?

Usando ReDim Preserve

Si usamos ReDim Preserve, mantendrá los valores originales contenidos en el array.

Sub PruebaMatrizDinamica() 'declaramos la matriz Dim intA() As Integer ReDim intA(2) 'rellena la matriz con números intA(0) = 2 intA(1) = 5 intA(2) = 9 'muestra el número en la posición 2 Debug.Print intA(2) 'redimensiona la matriz ReDim Preservar intA(3) intA(0) = 6 intA(1) = 8 'vuelve a mostrar el número en la posición 2 Debug.Print intA(2) End Sub

En ambos cuadros de mensaje mostrados arriba, el número 9 aparecerá ya que la sentencia ReDim Preserve mantuvo ese valor en esa posición.

Videos

1. Understanding VBA Code: Static and Dynamic Arrays with Dim

2. Excel VBA Basics #9 – Declaring variables with DIM and using SET to abbreviate worksheet name

3. Uso de arrays en VBA-Excel (Caso 1)

4. 7 – Variables Visual Basic

5. Excel VBA Tutorial for Beginners 36 – Variable Types and Option Explicit Statement in VB

Related posts:

  1. Análisis Psicológico de la Película Shrek
  2. Nueva licencia para conducir tipo automovilista, motociclista o chofer particular
  3. Nuevo pasaporte mexicano 2021: novedades y ventajas
  4. ¿Cómo Saber Mi Número de Crédito Infonavit?
  5. Departamentos de una empresa y sus funciones

Related Posts

general

Balanza Comercial de Mercancías de México 2020, Información revisada al mes de diciembre.

by Admin
April 25, 2022
0

Autor Comisión Europea , Fondo Monetario Internacional , Organización para la Cooperación y el Desarrollo Económico , Naciones Unidas ,...

Read more
general

Guía para entender qué significan los cargos de empresas en inglés

by Admin
April 25, 2022
0

Basta ya de romperte la cabeza intentando adivinar qué significan ese puñado de palabras en inglés que hay detrás de...

Read more
general

Emprego Comercial empresa multinacional Mirandela

by Admin
April 25, 2022
0

Resultados de pesquisa:OFERTA DE EMPREGO - ASSOCIAÇÃO AGRO-FLORESTAL€1,400 por mêsClassificado Nº 13989Data de registo:2018-10-18Tipo:OfertaTítulo:OFERTA DE EMPREGO - ASSOCIAÇÃO AGRO-FLORESTALLocalidade:MirandelaDescrição:A SILVIDOURO...

Read more
general

Inglés o español, ¿en qué idioma debe estar el nombre de su empresa?

by Admin
April 25, 2022
0

Las denominaciones en castellano transmiten cercanía con los clientes y la comunicación de valores, mientras que en inglés dan una...

Read more
Load More
  • Trending
  • Comments
  • Latest

Cita en el Consulado de España en Miami, Florida EE. UU.

April 23, 2022

Licenciatura en Negocio y Comercio Internacional

April 25, 2022

Guía definitiva examen teórico de Licencia para Conducir (2022) ▷

April 24, 2022

Licencia de conducir en Chihuahua 2021

0

Cómo saber mi número de Licencia de Conducir en Puerto Rico

0

Como programar una cita en DMV por internet para licencia de conducir

0

¿Qué hace un licenciado en administración de empresas?

May 22, 2022

LICENCIA DE PRIMERA OCUPACIÓN: SOLICITUD, PRECIO Y TRÁMITES

May 22, 2022

¿Qué es la licenciatura en educación?

May 22, 2022
  • Business
  • Science
  • Health
  • Entertainment
  • Sports
CONTACT US: support@tailieutuoi.com
No Result
View All Result
  • Home
  • Business
  • Health
  • Entertainment
  • Sports
  • Science

Copyright © 2022

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In