我使用 excel 生成文本文件,然后将其解析为数据库的输入。当我必须将 xlsx 文件保存为文本文件并关闭 excel 时,我总是很恼火,因为现在我正在 excel 中编辑文本文件。有没有一种方法,我只是看不到生成文本文件,但保持 xlsx 文件在 excel 中打开?
答案1
您需要一个 VBA 宏来实现这一点,它可能看起来像这样:
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
您可以根据需要修改子程序,例如添加“euth.csv”作为参数或提示。如果电子表格只有一列,此代码可以大大简化。
有关上述命令的解释,请参阅文章 在 Excel VBA 中写入文本文件/