首页 > 解决方案 > Excel VBA 代码不会打开名为“CON.txt”的文件

问题描述

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

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

我很迷惑。知道为什么一个特定的文件名会给出这个程序的含义吗?实际打开文件的代码(抛出 75 运行时错误)是:

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

wheresTgtDir是在所有其他情况下都有效的以“\”结尾的路径,sToken是记录类型令牌,并且iFileNo是基于令牌集合中项目数的整数。

标签: vbawindowsexcelfilenames

解决方案


DOS 和 Windows 平台不会打开名为 CON (带有任何扩展名) 的磁盘文件,因为这是一个特殊的名称,指的是“CONsole”(屏幕)。对不起 - 你不走运!您只需使用不同的令牌名称(假设您没有更改操作系统的选项)。例如,Open您可以在该行之前添加:

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

推荐阅读