Macro en editor visual basic

Compo pegar datos de una hoja de calculo a un fichero txt
este es mi código
Sheets("puntos").Select
Range("a1:a28").Select
Selection.Copy
Dim Libre
Libre = FreeFile
Open "D:\leviel\lev.txt" For Output As #1 'Libre
Print #Libre, ActiveSheet.Paste
Close #Libre
Pero lo que me aparece es solo la palabra "verdadero" en el fichero y no los datos de la hoja de calculo

3 respuestas

Respuesta
1
La linea
Print #Libre, ActiveSheet.Paste
es erronea, lo que espera esta instruccion es una variable y tu estas usando un metodo
Print #Libre, VARIABLE
La siguiente macro te guarda el contenido de la selección en un fichero de texto separado por tabulaciones, te recomiendo checar la ayuda
Public Sub Guardar_Como_Txt_Con_Tabulaciones()
Dim rDatos As Range
Dim Col As Integer
Dim Fil As Integer
Dim Libre As Integer
Dim strContenido As String
'Seleccionamos los datos a partir de la celda activa
Set rDatos = Selection
'Recorremos cada fila
For Fil = 1 To rDatos.Rows.Count
'Recorremos cada columna
For Col = 1 To rDatos.Columns.Count
'Vamos pegando cada valor separandolos por una tabulacion Chr(9)
strContenido = strContenido & rDatos.Cells(Fil, Col).Value & Chr(9)
Next Col
'Nos sobra la ultima tabulacion
strContenido = Left(strContenido, Len(strContenido) - 1)
'Al final de cada linea le agregamos un salto de linea
strContenido = strContenido & vbCrLf
Next Fil
'Obtenemos el siguiente numero de archivo libre
Libre = FreeFile
'Lo abrimos de modo binario, aqui puedes cambiar la ruta
Open "D:\Datos.txt" For Binary As Libre
'Escribimos de una sola vez todo el contenido
Put #Libre, , strContenido
'Cerramos el archivo
Close #Libre
MsgBox "Datos guardados exitosamente"
'Liberamos la memoria
Set rDatos = Nothing
End Sub
Respuesta
No pude probar el código pero me arriesgo
No sera que tienes que colocar esto.?
Print #Libre, Selection.Paste
Respuesta
Hasta donde mis escasos conocimientos llegan, un txt no es operable como pretendes.
De hecho en MS DOS apenas si se podía hacerle un "append".
Podría pensar en una macro que lo haga en archivo .doc que luego se grabe como txt y reemplace al txt anterior. Pero tómalo como una pista.
No sé si es realmente lo que quieres hacer.
Un gran abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas