Uso de Redim en Visual Basic
3043
post-template-default,single,single-post,postid-3043,single-format-standard,ajax_fade,page_not_loaded,,vertical_menu_enabled,side_area_uncovered_from_content,qode-theme-ver-11.0,qode-theme-bridge,wpb-js-composer js-comp-ver-5.0.1,vc_responsive

Uso de Redim en Visual Basic

Uso de ReDim en Visual Basic

Uso de Redim en Visual Basic

La instrucción ReDim permite redimensionar una matriz en Visual Basic.

Es útil en aquellos casos en que necesitamos almacenar datos en una matriz pero no sabes, a priori, cual será el número total de elementos a incorporar.

Un ejemplo práctico es cuando hacemos una utilidad para tratar los archivos de una carpeta pero al hacer el programa no sabemos cuantos archivos puede llegar a contener dicha carpeta y no sería eficiente diseñar matrices enormes para prever cualquier situación.


Option Explicit
Dim MiMatriz() As String
Private Sub Form_Load()
ReDim MiMatriz(NuevoIndice) As String
End Sub

La instrucción Redim puede ir seguido del parámetros Preserve: “Redim Preserve…” como su nombre indica lo que se hace es indicarle que al aumentar el tamaño de la matriz se preserven los datos de la misma.

La instrucción Redim puede utilizarse también para liberar espacio en una matriz ya procesada y que no necesitamos tener sus datos. Por ejemplo poniendo ReDim MiMatriz(0)

Como iterar por la matriz:


Dim ind as integer
For ind = 0 To UBound(MiMatriz)
debug.print MiMatriz(ind)
Next

Usar Redim para leer el contenido de Excel

En este ejemplo se usa la instrucción ReDim para leer el contenido de una hoja de Excel.


Public Sub ImportarDatosLaCaixa(Optional ArchivoExcel As String = "")
Dim RutaArchivo As String
Dim ObjHoja As Object
Dim strfilename As String
Dim objexcel As Object
Dim i As Integer
Dim objHojas As Object 'Integer
Dim Respuesta As String
Dim itm As Variant
Dim Sheetcount As Integer
Dim canHojas As Integer
Dim Lista()
strfilename = ArchivoExcel
If Len(Dir(strfilename)) = 0 Then
Respuesta = MsgBox("El archivo XLS que especificó no existe. Verifique la ruta", vbYesNo + vbCritical + vbDefaultButton2, " Archivo ")
Exit Sub
End If
Set objexcel = CreateObject("excel.application")
With objexcel
.displayalerts = False
.workbooks.Open (strfilename)
Sheetcount = .worksheets.Count
ReDim Lista(1 To Sheetcount)
For i = 1 To Sheetcount '.worksheets.Count
Set objHojas = .sheets(i)
canHojas = canHojas + 1
Lista(i) = .sheets(i).Name
'DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "importa", strfilename, True, "A1:C11"
'DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel8, "Mutua-" & Format(i, "00") & Lista(i), strfilename, True, Lista(i) & "!" & "A1:G300"
DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel8, "LaCaixa2008", strfilename, True, Lista(i) & "!" & "A1:Q300"
Next i
End With
objexcel.Quit
Set objexcel = Nothing 'close
Set ObjHoja = Nothing
MsgBox "Proceso Finalizado"
End Sub

Puedes consultar más ejemplos de Visual Basic en la sección Trucos y ejemplo de VBA para Microsoft Access.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Cargando…
No Comments

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: