Excel VBA写入CSV/文本文件未追加新行而是覆盖原有内容如何解决
问题根因
文件内容被覆盖和Write/Print语句无关,问题出在文件打开模式:
你当前用的Open Fullpath For Output As #1中,For Output的工作逻辑是直接创建/覆盖目标文件的全部原有内容,只要用这个模式,不管后续用什么写入语句都会清空原文件。
修复方案
把打开模式从For Output改为For Append即可,该模式会自动定位到文件末尾写入新内容,不会覆盖原有数据。你对Write语句的认知是正确的:它确实会自动在写入内容末尾追加换行符,不需要额外手动加换行控制。
修改后的outputcsv子程序参考:
Sub outputcsv() Dim Fullpath As String Dim outputstring As String Dim fileNum As Integer Fullpath = Worksheets("Maintence").Range("c5") ' 用FreeFile自动获取可用文件号,避免硬编码#1可能出现的文件号冲突 fileNum = FreeFile() ' 核心修改:把For Output改成For Append Open Fullpath For Append As #fileNum outputstring = Worksheets("CSV").Range("A1") Write #fileNum, outputstring Close #fileNum End Sub
内容的提问来源于stack exchange,提问作者Stuart Cruickshank
相关产品推荐
相关产品推荐

