vba - Excel VBA 代码无法打开名为 "CON.txt"的文件

标签 vba windows excel filenames

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

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

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

  • 如果“CON”记录出现在第 2 行,则它会在创建文件的第 2 行被删除。

  • 如果第 50 行出现“CON”记录,则它会在第 50 行被删除。

  • 如果我在每个 token 前面添加一个 p ,那么 CON token 现在是 pCON token ,一切正常。

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

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

其中 sTgtDir 是以“\”结尾的路径,适用于所有其他情况,sToken 是记录类型 token ,iFileNo 是一个基于 Token 集合中项目数的整数。

最佳答案

DOS 和 Windows 平台 won't open a disk file named CON (with any extension) ,因为这是一个特殊的名称,指的是“CONsole”(屏幕)。抱歉 - 你运气不好!您只需使用不同的 token 名称(假设您无法选择更改操作系统)。例如,在 Open 行之前,您可以添加:

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

关于vba - Excel VBA 代码无法打开名为 "CON.txt"的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447729/

相关文章:

vba - 比较两个字符串变量忽略大小写

excel - 如何访问 Excel-VBA 中具有多个区域的命名范围?

excel - 给定 2 个日期时查找单元格范围

vba - 打开工作簿时,Excel 宏刷新所有数据连接表和数据透视表,然后将数据透视表导出到 csv

windows - typescript 错误 TS7017 : Element implicitly has an 'any' type

c - 与 sscanf 一起使用的格式说明符 %n 不返回字符数

windows - Hadoop 2.2.0 Window 7 构建失败访问被拒绝

vba - 编写宏以在安装插件后自动运行

Python - win32com 可见错误不起作用?

excel - 将excel文件转换成prn给出不同的语言数据