Eu uso o Excel para gerar arquivos de texto que são analisados como entrada em um banco de dados. Fico constantemente irritado quando tenho que salvar o arquivo xlsx como um arquivo de texto e fechar o Excel porque agora estou editando o arquivo de texto no Excel. Existe uma maneira que eu simplesmente não estou vendo de gerar o arquivo texto, mas manter o arquivo xlsx aberto no excel?
Responder1
Você precisará de uma macro VBA para isso, que pode ser assim:
Sub WriteTextFile()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
CellData = ""
FilePath = Application.DefaultFilePath & "\euth.csv"
Open FilePath For Output As #2
For i = 1 To LastRow
For j = 1 To LastCol
If j = LastCol Then
CellData = CellData + TrimtActiveCell(i, j).Value)
Else
CellData = CellData + TrimtActiveCell(i, j).Value) + ","
End If
Next j
Write #2, CellData
CellData = ""
Next i
Close #2
MsgBox ("Done")
End Sub
Você pode modificar a sub-rotina como desejar, talvez adicionando "euth.csv" como parâmetro ou solicitando-a. Se a planilha tiver apenas uma coluna, esse código pode ser simplificado consideravelmente.
Para explicação dos comandos usados acima, consulte o artigo Escrevendo em arquivos de texto no Excel VBA/