VBA 运行时错误 1004:对象“工作簿”的方法“OpenText”失败

mus*_*ear 5 vba macros microsoft-excel microsoft-excel-2010

升级到 Excel 2010(自 2003 年起)后,用于标准化 Access 导入数据的脚本已停止工作。它返回一个错误:“运行时错误‘1004’:对象‘工作簿’的方法‘OpenText’失败”。

在 OpenText 部分之前,宏在文件夹中搜索 DateCreated 的最新文件,然后返回文件名和路径。

相关代码是:

Workbooks.OpenText FileName:=myDir & "\" & strFilename, _
    Origin:=-535, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
    , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
    Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), _
    Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15 _
    , 2), Array(16, 3), Array(17, 3), Array(18, 3), Array(19, 3), Array(20, 2), Array(21, 2), _
    Array(22, 1), Array(23, 2), Array(24, 2), Array(25, 3), Array(26, 2), Array(27, 2), Array( _
    28, 2)), TrailingMinusNumbers:=True
Run Code Online (Sandbox Code Playgroud)

任何想法可能会挂起 Excel 2010?

该文件仍然是一个 .xls 文件,并在兼容模式下运行,我还没有在任何其他宏中遇到问题。

录制新宏并与旧宏进行比较后更新:

新宏的一个区别,Origin 参数。

在旧宏中:

Origin:=-535
Run Code Online (Sandbox Code Playgroud)

新宏:

Origin:=65001
Run Code Online (Sandbox Code Playgroud)

在 Origin 上阅读,这似乎是要导入的文件的来源,可以省略。

Origin 对进口有何重要性?已指定数据类型。Origin 控制编码吗?

从原始宏中删除 Origin,返回相同的错误。将 Origin 值更改为 65001 仍会返回相同的错误。

mus*_*ear 1

@datatoo,你为我指明了正确的方向。这是一个变量/路径问题。不知何故,我开始使用 strFullFile 作为字符串来获取完整文件路径字符串。不过,我还简单地修改了 strFileName,在 myDir 字符串前面添加以创建完整的文件路径。删除将对 strFullFile 的适当引用更改为 strFileName 解决了该问题。