Macro para exportar a un sola columna a txt de diferentes hojas

Tengo un libro con diferentes hojas donde en la columna A hay valores los cuales quisiera guardar en un solo archivo de texto pero en la misma columna, es decir en la hoja1 en el rango A1:A1000000 y en la hoja2 hay valoes en el rango A1:A200000 y quiero que excel lo guarde en un solo txt los valores de la hoja2 y debajo los de la hoja1. Esto lo podría hacer copiando los valores de la hoja2 en la hoja1 pero excede el 1,200,000. No se si exista la posibilidad de hacer esto.

2 respuestas

Respuesta

Tienes que crear un archivo de escritura secuencial...

Te paso el código basado literalmente en lo que planteas. Adáptalo a tus valores reales.

Sub EscribeSecuencial()

Dim i As LongLong
Dim dato As Variant

Open "D:\Muestra.txt" For Output As #1

For i = 1 To 1000000
       dato = Sheets("Hoja1").Cells(i, 1)
       Write #1, dato
Next i

For i = 1 To 200000
      dato = Sheets("Hoja2").Cells(i, 1)
     Write #1, dato
Next i

Close #1
End Sub

Saludos,

Jaime

PD: No olvides valorar la respuesta

Muchas gracias por la respuesta, sin embargo tengo un inconveniente, pues me arroja un error de "no se ha definido el tipo definido por el usuario" creo que no reconoce el LongLong . Además si los valores varían, ¿aveces son menos del millón y otras veces más como se puede adaptar? También si agrego más hojas podría ser solo agregado esto:

Next i

For i = 1 To 200000
      dato = Sheets("Hoja3").Cells(i, 1)
     Write #1, dato

Error

El tipo LongLong es un tipo de dato Long "con mayor capacidad"... pero solo funciona en equipos de arquitectura 64bits. Tu computadora, o tu instalación de Excel no lo son.

La alternativa es usar el tipo Long.... cambia LongLong por Long....  

Esto sin embargo tiene un limite de alrededor de 2000000, pero aun así, alcanzará para tus requerimientos.

Puse LongLong, para que fuera viable aun para número mayores de registros...

Respuesta

Este ejemplo

https://www.youtube.com/edit?o=U&video_id=gJlPxrHNjGA 

https://www.youtube.com/watch?v=-bBE14kun2c 

https://www.youtube.com/watch?v=vFGJXvzXpd0 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas