debugging模式下的公式与不同的值不同

所以我正在写一个excel VBA程序,它将具有特定名称的所有csv文件读入工作簿上的不同表格中。

它正在阅读没有问题的文件。 问题出现在将数据从文件转换到数组中,这意味着要包含目录中所有文件中的所有相关数据。

要读取文件并按行分隔,

我在用:

Do Until EOF(1) Line Input #1, LineFromFile lineitems = Split(LineFromFile, Chr(10)) 

在模块的下面,当符合该行数据中的特定条件时,我将这些lineitems传递给数据数组。 为了清楚起见,expression式将文件行中的date值与文件名称上的date标记进行比较。

 ElseIf (Left(lineitems(Line), 8) = Right(Left(FileTime(FileNum), 6), 2) + "/" + Right(Left(FileTime(FileNum), 4), 2) + "/" + Left(FileTime(FileNum), 2)) Then Proxy = CStr(lineitems(Line)) DataArray(InverterNumber - 1, m(InverterNumber - 1)) = Proxy 

正如你所看到的,我已经添加了一个代理步骤来尝试并确保数据通过,但无济于事。 我还添加了一个故障保险,以确保没有空行进入DataArray:

 If Len(DataArray(InverterNumber - 1, m(InverterNumber - 1))) = Len(CStr(lineitems(Line))) Then Test(InverterNumber - 1, m(InverterNumber - 1)) = Len(DataArray(InverterNumber - 1, m(InverterNumber - 1))) m(InverterNumber - 1) = m(InverterNumber - 1) + 1 End If 

现在,如果我运行该程序的释放模式,它将返回一系列的空列,这不应该发生,因为故障安全。 但是,当我运行它通过debugging模式,如果我观察这一步,它会正确添加数据。

有什么方法可以确保值正确翻译?

有什么我可以做得更好吗?

这会从文件中读取一行,但不会返回分隔行的换行符:

 Line Input #1, LineFromFile 

那么这个:

 lineitems = Split(LineFromFile, Chr(10)) 

在CSV文件的“行”中是否真的有换行符? 如果是的话,这将有助于展示一些样本内容。