Como ReDim Preserve 2D Array en Excel VBA (2 xeitos sinxelos)

  • Comparte Isto
Hugh West

Unha matriz é unha variable que mantén os mesmos tipos de datos. Se só hai unha fila ou unha columna de datos, entón coñécese como matriz unidimensional. Non obstante, cando hai máis dunha fila e columna, chámase matriz 2D. Usamos ReDim para redimensionar unha matriz en VBA. Ademais, usamos a palabra clave Conservar con ReDim para manter os datos antigos intactos. Este artigo amosarache 2 formas rápidas de " ReDim Preserve " unha matriz 2D en Excel VBA .

Descargar Practice Workbook

Macro to ReDim Preserve 2D.xlsm

2 Prácticos enfoques para ReDim Preserve 2D Array en Excel VBA

Este é o conxunto de datos base creado a partir dunha Matriz 2D con tres filas e dúas columnas. En primeiro lugar, imos crear esta matriz. Despois, engadiremos outra columna a esta matriz. Usaremos o " ReDim Preserve " para facelo. Ademais, demostraremos o que ocorre se non usamos isto.

Por defecto, só podemos cambiar o tamaño da última dimensión da matriz (é dicir, as columnas ou o límite superior). Transpoñeremos a matriz, despois cambiaremos a última dimensión e, a continuación, traspoñeremos de novo para redimensionar as dúas dimensións da matriz 2D en Excel VBA.

1 ReDim Preserve Last Dimension 2D Array

Primeiro definiremos a Matriz 2D como dinámica. Despois, usando a instrución ReDim , crearemos unmatriz con tres filas e dúas columnas. Por último, usaremos de novo a instrución ReDim coa Conservar palabra clave para aumentar o límite superior da matriz bidimensional.

Pasos:

  • Para comezar, prema ALT+F11 para abrir a xanela Módulo VBA . Alternativamente, pode facelo desde a pestana Desenvolvedor →  seleccione Visual Basic .
  • A continuación, desde a Inserir pestana → seleccione Módulo . Teclearemos aquí o código VBA.

  • A continuación, escriba o seguinte código no Módulo xanela.
1130

Desglose do código VBA

  • En primeiro lugar, chamamos o Sub procedemento Redim_Preserve_2D_Array_Row ”.
  • A continuación, declaramos a variable Our_Array como unha matriz dinámica.
  • A continuación, definimos o tamaño da matriz. O límite inferior é 3 , o límite superior é 2 e ambos comezan desde 1 .
  • A continuación, asignamos valores á matriz .
  • Despois diso, introducimos os valores no intervalo de celas C6:D8 .
  • Despois diso, executará o código.
  • Entón, Garde o módulo e prema Executar .

  • Como resultado, devolverá os valores aos intervalos de celas definidos. Podemos ver que " Rachel " está na fila 1 e na columna 1 .que se definiu como ( 1,1 ) no código VBA.

  • Agora, cambiaremos o tamaño da matriz.
  • Entón, engade isto ao código anterior e elimina a primeira Instrucción Rango.Valor . Ademais, como se ve o código podes ver na instantánea que aparece a continuación.
4051

  • Aquí aumentamos o límite superior de ( 1 A 2 ) a ( 1 A 3 ) por 1 .
  • Entón, engadimos os valores á matriz.
  • Agora, se executamos este código, veremos que non se conservan os valores anteriores. Volverá en branco para os valores anteriores.

  • Agora, podemos corrixir isto engadindo a Conservar palabra clave no campo Declaración ReDim .
  • Finalmente, o noso código completo será este.
3651

  • Agora, se Executa este código, entón a saída será así. Así, " ReDim Preserve " a última dimensión dunha Matriz 2D en Excel VBA. Agora, o seguinte método mostrarache como " ReDim Preserve ” e cambie o tamaño das dúas dimensións da matriz.

Ler máis: VBA para ser único Valores da columna á matriz en Excel (3 criterios)

Lecturas similares

  • Como nomear unha matriz de táboa en Excel (con Pasos sinxelos)
  • Excel VBA para ler ficheiros CSV nunha matriz (4 exemplos ideais)
  • Como converter o intervalo en matriz en ExcelVBA (3 vías)
  • Excel VBA: eliminar duplicados dunha matriz (2 exemplos)

2. ReDim Conservar ambas dimensións en matriz 2D Excel VBA

Neste último método, mostrarémosche os pasos para cambiar o tamaño e " ReDim Preserve " da matriz 2D . Aquí, usaremos a función VBA Transpose para redimensionar o límite inferior da matriz. Se tentamos redimensionar o límite inferior da matriz no primeiro método, veremos o erro " Subíndice fóra do intervalo ". Agora, sen máis, vexamos como podemos solucionar isto e lograr o noso obxectivo.

Pasos:

  • Primeiro, como se mostra no primeiro método , abra a xanela Módulo .
  • En segundo lugar, engade as seguintes liñas de código ao primeiro código.
4305
  • Ademais, o código do método final ten este aspecto.
4878

Desglose do código VBA

  • En primeiro lugar, chamamos ao Sub procedemento " ReDim_Preserve_2D_Array_Both_Dimensions " .
  • Entón, o resto dos códigos ata a función VBA Transpose son os mesmos que no primeiro código.
  • Aquí, están a transpoñer a matriz.
  • Entón, aumentamos o límite superior da matriz.
  • Despois diso, transpoñemos a matriz de novo. Polo tanto, en última instancia, cambiará o límite inferior.
  • A continuación, introducimos os valores para a matriz redimensionada mentresconservando os datos antigos.
  • Por último, escribimos os valores no intervalo de celas C6:E9 .
  • Despois que, como se mostra no primeiro método , Executar este código.
  • Así, podemos visualizar como o código conserva un Matriz 2D usando a función “ ReDim Preserve ” e a función VBA Transpose .

Ler máis: VBA para transpoñer matriz en Excel (3 métodos)

Cousas para lembrar

  • ReDim Preserve non pode cambiar o límite inferior da matriz. Para iso, necesitamos usar a función Transpose .
  • Só podemos usar ReDim en matrices dinámicas.

Conclusión

Mostramosche dúas formas rápidas de " ReDim Preserve " unha 2D matriz en Excel VBA. Se tes algún problema con estes métodos ou tes algún comentario para min, non dubides en comentar a continuación. Ademais, podes visitar o noso sitio ExcelWIKI para obter máis artigos relacionados con Excel. Grazas por ler, segue destacando!

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.