我結束了縫合在列A中的值的文件名一起解決我的問題,完全歸功於@David和@Exactabox。這是非常低效的,並有冗餘位,但它運行(很慢)。如果任何人都可以發現如何清理它,請隨時獲得,否則它會完成工作。
[編輯]不幸的是我現在認識到,雖然這個宏出口的每一行作爲一個適當命名的新的.txt文件,每個文本文件的內容是文件的最後一行。因此,即使將20行全部導出爲具有適當文件名和正確格式的20個.txt文件,20個文件中的每一個的實際內容都是相同的。我不確定如何糾正這一點。
Sub SaveRowsAsTXT()
Dim wb As Excel.Workbook, wbNew As Excel.Workbook
Dim wsSource As Excel.Worksheet, wsTemp As Excel.Worksheet
Dim r As Long, c As Long
Dim filePath As String
Dim fileName As String
Dim rowRange As Range
Dim cell As Range
filePath = "C:\filepath\"
For Each cell In Range("B1", Range("B1048576").End(xlUp))
Set rowRange = Range(cell.Address, Range(cell.Address).End(xlToRight))
fileName = filePath & cell.Offset(0, -1).Value
Set wsSource = ThisWorkbook.Worksheets("Sheet1")
Application.DisplayAlerts = False 'will overwrite existing files without asking
r = 1
Do Until Len(Trim(wsSource.Cells(r, 1).Value)) = 0
ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(1)
Set wsTemp = ThisWorkbook.Worksheets(1)
For c = 2 To 16
wsTemp.Cells((c - 1) * 2 - 1, 1).Value = wsSource.Cells(r, c).Value
Next c
wsTemp.Move
Set wbNew = ActiveWorkbook
Set wsTemp = wbNew.Worksheets(1)
wbNew.SaveAs fileName & ".txt", xlTextWindows 'save as .txt
wbNew.Close
ThisWorkbook.Activate
r = r + 1
Loop
Application.DisplayAlerts = True
Next
End Sub
來源
2013-03-27 17:43:54
eke
你試過了什麼? – 2013-03-21 17:27:52
我試圖將每個示例的各個位添加到另一個示例中,但我不熟悉編寫Excel宏(我知道R,就是這樣)。我成功地使用了這兩個示例,但是在這兩種情況下輸出都不理想(無法在第一種情況下將內容作爲列的B列結尾,並且每個列都放在.txt文件的新行中;文件名第二種情況是「text1」,「text2」等,但內容正確)。我只是在試圖操縱它的過程中不斷打破宏觀。 – eke 2013-03-21 17:37:27