我对VBA很新。我有一个要求,我需要将数据保存在Excel工作表的特定列(假设使用C列数据的范围)到.txt文件。经过一些网络搜索,我得到了VBA代码,但问题是,如果一个单元格(比如Cell(1,3))有多行数据,如下所示
细胞(1,3):
我得到了VBA,但我有一个问题。
我使用的VBA将单元格(1,3)内容保存在一行中 - '我得到了vba但是我有一个问题帮助我'我不希望它在一行中。< / p>
我的要求非常简单。
我在工作表中有一个activex按钮。
单击按钮时,C列中的数据必须保存为.txt文件,包括换行符。所以如果cell(1,3)有4行而cell(2,3)有2行,那么.txt文件应该有6行。 .txt文件应该完全复制我的C列。
3.此文本文件必须保存到“C”\ vbacodes \“path。
以下是我在互联网上找到的代码
Private Sub CommandButton1_Click()
'Update 20130913Dim wb As Workbook
Dim saveFile As String
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
wb.Worksheets(1).Paste
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt")
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False
wb.Close
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:5)
首先更改路径和文件名以符合您的要求,然后将此宏指定给按钮:
Sub TextFileMaker()
Dim MyFilePath As String, MyFileName As String
Dim N As Long, nFirstRow As Long, nLastrow As Long
MyFilePath = "C:\TestFolder\"
MyFileName = "whatever"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(MyFilePath & MyFileName & ".txt", True)
nLastrow = Cells(Rows.Count, "C").End(xlUp).Row
nFirstRow = 1
For N = nFirstRow To nLastrow
t = Replace(Cells(N, "C").Text, Chr(10), vbCrLf)
a.WriteLine (t)
Next
a.Close
End Sub