在Excel中,我有列A中的文章名稱列表和列B中的免責聲明。現在,對於列A中的每篇文章,我想創建一個文本文件, A是文件的標題,B是免責聲明,是文件的內容。將Excel行輸出到一系列文本文件
這可能嗎?
這個想法是,我有幾百這些,我想讓我更容易。
如果Excel不適合這個,任何人都可以提出一種替代方案嗎? (可能記事本++有一個功能,可以幫助?)
在Excel中,我有列A中的文章名稱列表和列B中的免責聲明。現在,對於列A中的每篇文章,我想創建一個文本文件, A是文件的標題,B是免責聲明,是文件的內容。將Excel行輸出到一系列文本文件
這可能嗎?
這個想法是,我有幾百這些,我想讓我更容易。
如果Excel不適合這個,任何人都可以提出一種替代方案嗎? (可能記事本++有一個功能,可以幫助?)
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
使用變體陣列對速度的另一種方法,和給定的唯一文件是需要創建的替代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
謝謝 - 這對我很好 - 試圖讓代碼重複每一行數據,但它只是爲第2行創建文件。任何幫助將不勝感激! – Dorje
@dorje您是否在A2以下的單元格中有數據? – brettdj
你好brettdj,我想複製完全相同的東西,我不能讓這個工作超過兩行。我在一個mac上工作,所以我使用「:」修復了路徑,但是這個宏不會運行超過兩行。我被卡住了52錯誤。有任何想法嗎 ? – Stanislasdrg
我沒有足夠的代表評論他人的帖子,所以我必須發佈這個答案。 @晶體管1接受的答案的作品;然而,在Excel 2010中需要改變
Set oSh = Sheet1
到Set oSh = ThisWorkbook.Worksheets("worksheet")
當 「工作」 是工作表的名稱的數據上。
你的明星,謝謝@ ;-) –
任何時間都可以讓Wayne!樂意效勞! – transistor1
+1好方法。 – brettdj