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