将Excel行输出到一系列文本文件
在Excel里面,我有列A中的文章名和列B中的免责声明。现在对于列A中的每篇文章,我想创build一个文本文件,A是文件的标题和B,免责声明,是文件的内容。
这可能吗?
这个想法是我有几百个,我想让自己更容易。
如果Excel不适合这个,任何人都可以提出一个替代scheme? (可能记事本+ +有一个function,可以帮助?)
Sub Export_Files() Dim sExportFolder, sFN Dim rArticleName As Range Dim rDisclaimer As Range Dim oSh As Worksheet Dim oFS As Object Dim oTxt As Object 'sExportFolder = path to the folder you want to export to 'oSh = The sheet where your data is stored sExportFolder = "C:\Disclaimers" Set oSh = Sheet1 Set oFS = CreateObject("Scripting.Filesystemobject") For Each rArticleName In oSh.UsedRange.Columns("A").Cells Set rDisclaimer = rArticleName.Offset(, 1) 'Add .txt to the article name as a file name sFN = rArticleName.Value & ".txt" Set oTxt = oFS.OpenTextFile(sExportFolder & "\" & sFN, 2, True) oTxt.Write rDisclaimer.Value oTxt.Close Next End Sub
另一种方法是使用不同的数组来获得速度,而只需要创build文件就可以替代FileSystemObject
。
Sub DataDump() Dim X Dim lngRow As Long Dim StrFolder As String StrFolder = "C:\temp" X = Range([a1], Cells(Rows.Count, 2).End(xlUp)) For lngRow = 1 To UBound(X) Open StrFolder & "\" & X(lngRow, 1) & ".txt" For Output As #1 Write #1, X(lngRow, 2) Close #1 Next End Sub
我没有足够的代表评论其他人的post,所以我不得不张贴这个答案。 @晶体pipe1接受的答案工作; 但是,在Excel 2010中需要更改
Set oSh = Sheet1
Set oSh = ThisWorkbook.Worksheets("worksheet")
其中“工作表”是数据所在工作表的名称。