这看起来真的很容易(我已经完成了一百万次并且从来没有遇到过问题),但这让我很难过。
我想根据Excel电子表格中的内容创建一些SQL脚本。为此,我创建了一个宏,使用下面的代码读取文本文件
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
Set stream = fso.OpenTextFile(filepath, 8, False)
这是假设打开文本文件以追加并插入我的新值。
不幸的是,它总是覆盖而不是追加,这让我疯狂。
有什么想法吗?
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分:-3)
这很奇怪,在this documentation中,它提到与ForAppending
对应的常量为8
,但它在底部的示例中使用3
。
尝试:
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
Set stream = fso.OpenTextFile(filepath, 3, False)