当它应该被附加时,文本被覆盖

Tim*_*Tim 2 file-io vba filesystemobject

这看起来很容易(我已经完成了一百万次,从来没有遇到过问题),但这让我很伤心.

我想根据Excel电子表格中的内容创建一些SQL脚本.为此,我创建了一个使用以下代码读取文本文件的宏

Dim fso As FileSystemObject
Set fso = New FileSystemObject

Dim stream As TextStream
Set stream = fso.OpenTextFile(filepath, 8, False)
Run Code Online (Sandbox Code Playgroud)

应该打开文本文件以追加并插入我的新值.

不幸的是,它总是被覆盖而不是追加,这让我疯狂.

有任何想法吗?

Sco*_*man 10

我刚刚建立了一个函数来将字符串附加到文件中.我在几个星期/几个月前遇到过这个问题,发现如果使用实际的单词ForAppending,就像它在Intellisense中显示的那样,它输入的数字8对我有用.

Const ForAppending = 8

Sub AppendStringToFile(ByVal strFile As String, ByVal strNewText As String, Optional intBlankLine As Integer = 1)

Dim fso as FileSystemObject, ts as TextStream

Set fso = New FileSystemObject
Set ts = fso.OpenTextFile(strFile, ForAppending, True)

With ts
    .WriteBlankLines intBlankLine
    .WriteLine (strNewText)
    .Close
End With

Set ts = Nothing
Set fso = Nothing

End Sub
Run Code Online (Sandbox Code Playgroud)

  • Const ForReading = 1,ForWriting = 2,ForAppending = 8 (2认同)
  • 您应该考虑将其编辑为Sub并声明您的变量和常量. (2认同)

Sea*_*anC 7

回归基础......
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]

用于您的要求:

Dim FNum As Integer

FNum = FreeFile()
Open strFile For Append As FNum

'do your stuff here
Write #FNum, MyData

Close FNum
Run Code Online (Sandbox Code Playgroud)