Excel VBA代码无法打开名为“ CON.txt”的文件

时间:2018-07-20 17:34:11

标签: excel vba windows excel-vba filenames

我正在处理一个大型文本文件,其中包含用管道分隔的数据,其中每行以一个文本“记录类型”字段开头-例如,“ APP”,“ ATT”,“ CON”,“ A”, “ T” ...我需要将文件拆分为具有特定记录类型的一系列文件,因此“ APP.txt”具有所有APP记录类型,等等。

我正在做的是从源文件中读取一行,抓取第一个字段,检查令牌是否在集合中,然后,如果令牌在集合中,则打开该文件并写入文件,或者如果令牌不在集合中,则创建一个新文件,对其进行写入,然后将该令牌添加到该集合中。我的程序运行正常,但创建“ CON.txt”文件时除外:

  • 如果我从源文件中删除所有“ CON”记录类型,则可以正常工作。

  • 如果“ CON”记录出现在第2行,它将在第2行轰炸,从而创建文件。

  • 如果“ CON”记录出现在第50行,它将在第50行爆炸。

  • 如果我在每个令牌前面添加一个p,所以CON令牌现在是pCON令牌,则一切正常。

我很迷惑。知道为什么一个特定的文件名会给该程序带来麻烦吗?实际打开文件的代码(引发75运行时错误)是:

Open sTgtDir & sToken & ".txt" For Append As #iFileNo

其中sTgtDir是一个以“ \”结尾的路径,在所有其他情况下都可以使用,sToken是记录类型令牌,而iFileNo是一个基于计数的整数。令牌集合中的项目。

1 个答案:

答案 0 :(得分:4)

DOS和Windows平台won't open a disk file named CON (with any extension),因为这是一个特殊名称,表示“控制台”(屏幕)。抱歉-您不走运!您只需要使用不同的令牌名称(假设您没有更改操作系统的选项)。例如,您可以在Open行之前添加:

If UCase(sToken) = "CON" then sToken = "pCON"