【发布时间】:2011-08-05 15:45:54
【问题描述】:
我正在尝试让 VBA 触发命令
sImportFilePath = Application.GetOpenFilename(FileFilter:= _
"Excel Files (*.xls), *.xls", Title:="Choose The Source File")
Application.Workbooks.Open (sImportFilePath)
sImportFileName = FunctionGetFileName(sImportFilePath)
当我单步执行该功能时它们会起作用,但是当我使用热键 Ctrl+Shift+F 或任何其他热键时,Application.Workbooks.Open 命令会起作用,但它会导航新的 Excel 文档, 然后什么都不做。但是,当我在开发人员选项卡中打开“宏”时,选择我的宏,然后单击“运行”,一切正常。
【问题讨论】:
-
你说它没有“做任何事情”——你期待看到什么?大概在您发布的示例之后还有更多代码。 FunctionGetFileName 是什么?
-
预期结果将是执行下一行 FunctionGetFileName 并继续执行整个文档。 FunctionGetFileName 是我在程序的其他地方编写的一个函数,它从 FilePath 中找到 FileName,但之后还有更多代码也没有执行。然而,通过进一步的实验,我缩小了问题的范围并相应地修改了问题。
-
什么版本的 Excel?在 2007 年使用 Ctrl+Shift+F 为我工作。
-
我也在使用 2007。我不知道为什么这不应该工作。可能与使用全局变量有关吗?
-
你有任何错误处理或“on error resume next”吗?如果是,则将其注释掉,看看会发生什么。正在打开的工作簿是否有任何 auto_open 宏?