我有一个excel文件,文件名在A列中,行内容在B列中。
看起来像这样:
file1|content1
file2|content2
file3|content3
我还有一个宏VBA脚本,它在磁盘上创建txt文件,文件名来自A列,内容来自B列。 这是脚本:
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:\path\to\folder"
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
它的工作原理应该如此,但是现在我想将一些其他数据附加到excel表中现有文件的末尾,当前脚本会覆盖文件,它们只包含一行数据,出现在excel中的最后一个给定文件名。
看起来像这样:
file1|content1
file2|content2
file3|content3
file1|new_content4
file2|new_content5
file3|new_content6
所以file1.txt现在有两行,例如:
content1
new_content4
是否可以将列B中的数据附加到文件名的末尾,并在列A上添加名称?我该怎么做?
答案 0 :(得分:1)
将iomode
的{{1}}参数更改为OpenTextFile
或8:
ForAppending
如果您希望附加到文件中的新行,则可能需要添加Set oTxt = oFS.OpenTextFile(sExportFolder & "\" & sFN, 8, True)
来电。
参考:http://msdn.microsoft.com/en-us/library/aa265347(v=vs.60).aspx