Excel转TXT文件VBA代码修改:添加指定头部与首行$前缀
修改VBA代码实现指定文本格式输出
没问题,我帮你调整VBA代码来实现你需要的文本格式,包括添加指定的开头两行,以及给第一行数据加上$前缀。
修改后的完整代码
Sub ExceltoText() Dim FileName, sLine, Deliminator, x, y, z As String Dim LastCol, LastRow, FileNumber, i, j As Integer FileName = "C:\Users\Administrateur\Desktop\App vba\ExcToTxt.txt" Deliminator = "|" x = "$|0|Les Données de SALARIES" y = "=|0|Les Données de SALARIES" z = "=|1|SALARIES|" LastCol = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column LastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row FileNumber = FreeFile Open FileName For Output As FileNumber ' 先写入要求的开头两行 Print #FileNumber, x Print #FileNumber, y For i = 1 To LastRow sLine = "" ' 每次循环前清空sLine,避免残留上一行内容 For j = 1 To LastCol If j = LastCol Then sLine = sLine & Cells(i, j).Value Else sLine = sLine & Cells(i, j).Value & Deliminator End If Next j ' 根据行号添加对应前缀,保证第一行带$ If i = 1 Then Print #FileNumber, "$" & z & sLine & "|" Else Print #FileNumber, z & sLine & "|" End If Next i Close #FileNumber MsgBox "File generated" End Sub
主要修改点说明
- 添加开头两行:在打开文件后,直接用
Print语句写入你指定的x和y两行内容,满足文件开头的格式要求。 - 修复第一行前缀逻辑:原代码里强制
i=2会破坏循环逻辑,现在改成判断行号,给第一行数据添加$前缀,其他行保持原有格式。 - 优化内容初始化:把
sLine = ""放到外层循环开头,确保每行数据都是全新拼接的,避免残留上一行的内容。 - 统一末尾格式:确保每行末尾都带有
|,和你期望的输出格式完全匹配。
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

