Excel将单元格内容附加到文本文件的末尾。怎么样?

时间:2014-02-23 20:18:09

标签: excel excel-vba append vba

我有一个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上添加名称?我该怎么做?

1 个答案:

答案 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