VBA Array

26/10/2009 - 13:30 por Fernando | Informe spam
Muy buenas:

He escrito el siguiente procedimiento para que llene una matriz y
posteriormente la transcriba en un rango de celdas; la matriz se llena
correctamente pero a la hora de trasncribir los datos en el rango de celdas
únicamente me pone los datos del primer elemento de la matriz. ¿Podríais
ayudarme por favor?
Muchas gracias por adelantado.

Sub PeriodArray()
Dim Period()
Dim LoadBook As Object
Set LoadBook = Workbooks("UPLOAD_TM1_SAPR3.XLS").Sheets("List")
Set TheRange = Sheets("Export").Range(Cells(1, 3), Cells(Filas, 3))
Set Libro = Workbooks("TRISA2010.xls").Sheets("TRISA2010")
ReDim Period(1 To Filas)
For i = 1 To Filas
Mes = Libro.Range("D" & i + 1).Value
Select Case Mes
Case "pro Jan"
Meses = "01"
Case "pro Feb"
Meses = "02"
Case "pro Màr"
Meses = "03"
Case "pro Apr"
Meses = "04"
Case "pro Mai"
Meses = "05"
Case "pro Jun"
Meses = "06"
Case "pro Jul"
Meses = "07"
Case "pro Aug"
Meses = "08"
Case "pro Sep"
Meses = "09"
Case "pro Okt"
Meses = "10"
Case "pro Nov"
Meses = "11"
Case "pro Dez"
Meses = "12"
End Select
Period(i) = Meses
Next i
TheRange.Value = Period
End Sub

Preguntas similare

Leer las respuestas

#1 Cacho
27/10/2009 - 00:25 | Informe spam
Hola! Fernando.
En un archivo nuevo (en blanco) incorpora un módulo con el siguiente código:
______________________________

Option Base 1

Sub DescargarUnVectorEnLaHoja()
Dim MiVector(4)

MiVector(1) = "Ésta"
MiVector(2) = "es"
MiVector(3) = "una"
MiVector(4) = "prueba"

Cells.Delete
Cells.HorizontalAlignment = xlCenter

Rem Ésto es lo que estás haciendo
Range("a1:a4").Value = MiVector

Rem Ésto es lo que deberías hacer
Range("c3:c6").Value = WorksheetFunction.Transpose(MiVector)

Rem Notar que el vector es un arreglo "horizontal"
Range("c1:f1").Value = MiVector
End Sub
______________________________

Recorre lentamente las tres asignaciones:

Range("a1:a4").Value = MiVector
Range("c3:c6").Value = WorksheetFunction.Transpose(MiVector)
Range("c1:f1").Value = MiVector


de modo que puedas obtener conclusiones útiles.

Y no dejes de advertir que ocurre si no incorporas la instruciión:
Option Base 1


Saludos, Cacho.
Respuesta Responder a este mensaje
#2 Cacho
27/10/2009 - 00:39 | Informe spam
Se me olvidó comentarte que la alternativa a:
__________________________

Option Base 1

Sub DescargarUnVectorEnLaHoja()
Dim MiVector(4)

__________________________

es lo siguiente:

Sub DescargarUnVectorEnLaHoja()
Dim MiVector(1 to 4)


Creo que -ahora sí-: no se me quedó nada en el tintero.

Saludos, Cacho.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida