在这行代码下,Workbooks.Open(previous_absolute_path)大部分时间冻结了Excel,没有给出错误消息:
Set current_workbook = Workbooks(get_file_name(current_absolute_path))
周围的代码:
If IsWorkBookOpen((current_absolute_path)) = False Then
If previous_absolute_path <> "" And previous_absolute_path <> current_absolute_path Then
Workbooks(get_file_name(previous_absolute_path)).Close True
End If
Set current_workbook = Workbooks.Open(current_absolute_path)
previous_absolute_path = current_absolute_path
Else
Set current_workbook = Workbooks(get_file_name(current_absolute_path)) 'Causes Fail!
End If
current_absolute_path
是绝对有效的文件路径 . 似乎每次代码运行时都会打开至少窗口 . 但是,在新打开的工作簿中,从我将消息框作为 workbook_open()
的第一行代码并且消息框永远不会出现的情况下,我的所有代码都没有执行过 .
代码确实有效,当且仅当我打开运行此宏的工作簿时,在运行该宏之前,我在 current_absolute_path
手动打开工作簿 . 我关闭该文件并运行宏,它没有任何问题 .
current_absolute_path
,是确认的有效文件路径 . 代码行可以打开同一文件夹中的其他工作簿 . Excel允许此时来自互联网的所有宏和"trusts"文件 . 正在打开的工作簿的文件夹不受保护..我还没有技能知道问题所在 . 必须做什么?
EDIT :下次没有手动打开导致Excel宏成功运行的工作簿,特别是手动关闭它 .