Error al transferir matriz a excel

17/09/2007 - 01:26 por Daniel Pozzi | Informe spam
Estoy tratando de transferir una matriz en vb a excel en un solo paso, tengo
varios ejemplos de cómo hacerlo. Dimensiono la matriz como variant y en ella
guardo texto. Mientras no almacene una string larga funciona correctamente,
pero con una string de ej. 1060 caracteres, me da error.
Si transfiero la matriz celda por celda, funciona correctamente.

esto funciona correctamente:

Dim rgnlineas(1 To 10000, 1 To 1) As Variant
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object

'Start a new workbook in Excel
Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Add

..

Set oSheet = oBook.Worksheets(1)
For f = 1 To contlineas
oSheet.cells(f, 1) = rgnlineas(f, 1)
Next
oExcel.Visible = True

..
esto no funciona, da error cuando len(rgnlineas(xx,1)) es grande:

Set oSheet = oBook.Worksheets(1)
oSheet.Range("a2:a10000").Value = rgnlineas

oExcel.Visible = True


Pueden ayudarme, gracias

Daniel

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
18/09/2007 - 04:03 | Informe spam
hola, Daniel !

Mostrar la cita
1) no te funciona porque estoy usando una funcion de hoja de calculo a trves del objeto 'Application'
en *tu* caso [a traves de VB] cambia de Application a -> oExcel

Mostrar la cita
2) la instruccion que buscas es [de nuevo] usando una funcion de hoja de calculo... -> Transponer(...)
usada desde excel es una instruccion del tipo:
-> Range("a1").Resize(UBound(Matriz) + 1) = Application.Transpose(Matriz)
usada desde VB vuelves a cambiar Application por -> oExcel
-> oSheet.Range("a2").Resize(contlineas).Value = oExcel.Transpose(rgnlineas)

Mostrar la cita
3) [definitivamente] no es lo mismo hacerlo linea-a-linea [o celda-a-celda] que por el rango *de golpe*
entre los pros y contras, esta el que linea-a-linea SI puedes incluir textos superiores a 255 caracteres de largo

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
#7 Daniel Pozzi
18/09/2007 - 04:33 | Informe spam
Gracias! entonces la ventaja es la rapidez en el proceso y la contra q no
puedo transferir mas de 255 caracteres.
Gracias nuevamente!

Daniel



"Héctor Miguel" escribió en el mensaje
news:eabnagZ%
Mostrar la cita
Ads by Google
Search Busqueda sugerida