Excel 用VBA写入TXT文件-文件被中断

Excel 用VBA写入TXT文件-文件被中断,excel,vba,file-io,Excel,Vba,File Io,我有一个VBA宏,它在运行X13 ARIMA之前以“datevalue”格式(即“年”选项卡“月”选项卡数据)写入一个txt文件 它一直有效,但最近只起了几次作用。当我查看它在季节性调整之前生成的.txt文件时,它在一行中间被中断。在1998到2018年7月之前,它总是像往常一样写文件,但是它在小数点的中途停止。p> 这是编写txt日期值文件的代码部分。Ano和mes(年和月)是代码开头的输入 Private Sub copyData(ByVal mes As Integer, ByVal an

我有一个VBA宏,它在运行X13 ARIMA之前以“datevalue”格式(即“年”选项卡“月”选项卡数据)写入一个txt文件

它一直有效,但最近只起了几次作用。当我查看它在季节性调整之前生成的.txt文件时,它在一行中间被中断。在1998到2018年7月之前,它总是像往常一样写文件,但是它在小数点的中途停止。p> 这是编写txt日期值文件的代码部分。Ano和mes(年和月)是代码开头的输入

Private Sub copyData(ByVal mes As Integer, ByVal ano As Integer, rng As Range)
    Dim sFileText As String
    Dim iFileNo As Integer
    Dim i, col As Double

    i = rng.Row
    col = rng.Column
    ficar = True
    iFileNo = FreeFile

    Open "P:\Macro\X12\Input\serie1.txt" For Output As #iFileNo

    'Writes the file with the time series
    While Cells(i, col) <> ""
        Print #iFileNo, ano & Chr(9) & mes & Chr(9) & Cells(i, col)
        If (mes + 1) Mod 12 > 0 Then mes = (mes + 1) Mod 12 Else mes = 12
        If mes = 1 Then ano = ano + 1
        i = i + 1
    Wend

    Close #iFileNo

End Sub
这是尾巴,它停止工作

2018    4   13790.364479
2018    5   13259.844355
2018    6   14320.106493
2018    7   16101.08
我猜现在的文件太长了

更新
我在Wend之前添加了一个MsgBox(如下所示),这样代码运行速度会变慢(在运行时我一直按enter键),并且可以正常工作。所以我认为它破坏了文件的编写,因为它花费的时间太长了

MsgBox ano & Chr(9) & mes & Chr(9) & Cells(i, col)
后续行动(如果有人遇到此问题):

我认为这个文件对于我的excel来说太长了,它是如何被淹没的。解决方案是在运行代码之前限制小数的数量。所以我在我的excel文件中放了一个=圆(xxx,2)

我希望有帮助

后续行动(如果有人遇到此问题):

我认为这个文件对于我的excel来说太长了,它是如何被淹没的。解决方案是在运行代码之前限制小数的数量。所以我在我的excel文件中放了一个=圆(xxx,2)


我希望有帮助

可能在文件中最后一个单元格的值处,有一个特殊(不可见)字符包含在单元格的值中,该字符稍后被读取为CHR(26)文件结尾字符()。请尝试以下操作:记住该单元格的值,将其删除并手动逐位插入,然后再次运行。Excel或VBA是否定期终止,或者是否存在错误?“serie1.txt”的文件大小是多少?与Excel表格相比,缺少多少行?@Asger实际上,我的单元格都是公式。你认为这就是问题所在吗?@hc\u dev有时会定期终止,有时会破坏我的excel!我从未收到错误消息。。。文件大小为6KB。有254行,它一直写到第247行。数字似乎在正常范围内(254行应该写得很快,6KB的文件应该不会引起问题)。如果为宏选择其他工作表或工作簿,会发生什么情况?如果移动起始范围,会发生什么情况?它是否总是在同一单元格(第247行)中断?要点是:您的VBA代码看起来正确:)可能在文件中最后一个单元格的值处,单元格的值中包含一个特殊的(不可见)字符,该字符稍后将被读取为CHR(26)文件结尾字符()。请尝试以下操作:记住该单元格的值,将其删除并手动逐位插入,然后再次运行。Excel或VBA是否定期终止,或者是否存在错误?“serie1.txt”的文件大小是多少?与Excel表格相比,缺少多少行?@Asger实际上,我的单元格都是公式。你认为这就是问题所在吗?@hc\u dev有时会定期终止,有时会破坏我的excel!我从未收到错误消息。。。文件大小为6KB。有254行,它一直写到第247行。数字似乎在正常范围内(254行应该写得很快,6KB的文件应该不会引起问题)。如果为宏选择其他工作表或工作簿,会发生什么情况?如果移动起始范围,会发生什么情况?它是否总是在同一单元格(第247行)中断?重点是:您的VBA代码看起来正确:)
MsgBox ano & Chr(9) & mes & Chr(9) & Cells(i, col)