La zona de copiar y pegar no es la misma.
Quiero copiar un rango específico de una de mis hojas de Excel a un archivo de texto, pero cuando uso el código:
Sub FromExcelToNpad()
'exportar la hoja activa como archivo de texto
Dim myPath As String, myFile As String
myPath = ThisWorkbook.Path & "\"
myFile = "z.txt"
Dim WB As Workbook, newWB As Workbook
Set WB = ThisWorkbook
Application.ScreenUpdating = False
Set newWB = Workbooks.Add
WB.ActiveSheet.UsedRange.Copy newWB.Sheets(1).Range("A4,A10:A22,A28")
With newWB
Application.DisplayAlerts = False
.SaveAs Filename:=myPath & myFile, FileFormat:=xlText
.Close True
Application.DisplayAlerts = True
End With
WB.Save
Application.ScreenUpdating = True
End Sub
Sigo obteniendo un error de copiar y pegar, funciona si solo uso range("A4")
, pero termina copiando toda la hoja en el archivo de texto.
davy.ai
El problema parece estar en el rango que se está copiando. El código actualmente intenta copiar un rango no contiguo (A4, A10:A22, A28), lo cual puede estar causando un error de copiar/pegar.
Para copiar un rango específico de una de tus hojas de Excel a un archivo de texto, intenta modificar el código de la siguiente manera:
Sub DeExcelANotepad()
'exportar la hoja activa como archivo de texto
Dim miRuta As String, miArchivo As String
miRuta = ThisWorkbook.Path & "\"
miArchivo = "z.txt"
Dim WB As Workbook
Set WB = ThisWorkbook
Application.ScreenUpdating = False
WB.ActiveSheet.Range("A4,A10:A22,A28").Copy
Open miRuta & miArchivo For Output As #1
Print #1, Clipboard.GetText(TextFormat:=1)
Close #1
Application.ScreenUpdating = True
End Sub
Este código copiará el rango especificado y lo exportará a un archivo de texto llamado “z.txt” en el mismo directorio que el archivo de Excel.
Ten en cuenta que este código utiliza el portapapeles para transferir el rango copiado al archivo de texto. Esto puede no funcionar si ya hay otros elementos en el portapapeles.