判断excel文件是否关闭
vb吧
全部回复
仅看楼主
level 8
tbzp666 楼主
2023年03月28日 03点03分 1
level 6
检查一下文件的对象?
2023年03月28日 04点03分 2
level 13
If Not ExcelBook Is Nothing Then
ExcelBook.Close
Set ExcelBook = Nothing
End If
2023年03月28日 04点03分 3
level 8
tbzp666 楼主
如果意外关闭打开的文档就会出现
我的目的是在某种原因下文件已经关闭,如何编写代码避免出现以上对话框
2023年03月28日 07点03分 4
你没办法完全避免这个错误,比如任务管理器强制关闭Excel进程的外部行为,就会导致报错,但你可以使用on error语句截获这个报错,不让它弹出和终止程序,程序也可以继续运行
2023年03月28日 13点03分
或者就是把直接关闭Excel的代码改成3楼我写的,也就是关闭之前先判断一下Excel表格是不是打开状态
2023年03月28日 13点03分
@空中熬翔🌴 是关闭excelApp对象还是Excelbook ,这两者有什么区别
2023年03月29日 02点03分
@tbzp666 理论上程序运行结束前这两个都应该关闭释放内存,ExcelAPP就是Excel进程,Excelbook就是工作簿,指向具体的文件
2023年03月29日 03点03分
level 8
tbzp666 楼主
@空中熬翔
3楼代码不行啊,与下列代码冲突了
Rem 打开的工作表一定要关闭,否则,工作表一直处于打开状态
Private Sub Form_Unload(Cancel As Integer)
Rem 通过“关闭”菜单项的enabled属性,间接判断工作表是否关闭
Rem 不能处理“工作表”是否关闭
If Mnu_Close.Enabled = True Then
MsgBox "工作表处于打开状态,请关闭工作表!"
Rem Cancel为0,则窗体被卸载
Rem 把Cancel设置为任何一个非零的值防止窗体被删除
Cancel = True
End If
End Sub
打开的工作表关闭终止代码运行,不会判断工作表是否处于打开状态
意外关闭的excel文件,则ExcelBook.Close 会显示错误
Rem ********** 菜单“关闭”选项 **********
Private Sub Mnu_Close_Click()
Rem 关闭Excel文件,跳过询问,不保存
ExcelBook.Close False
Rem 退出对象文件
ExcelApp.Quit
Rem 把菜单“关闭”设为无效,因为打开文件后只能关闭一次
Mnu_Close.Enabled = False
Rem 把菜单“关闭”设为无效,因为关闭文件后不能再保存了
Mnu_SaveAs.Enabled = False
End Sub
2023年03月29日 03点03分 5
你的代码就没有考虑Excel意外关闭的情况,菜单enable状态切换是多余的,手动关闭Excel时的代码像3楼那样判断一下就行了。实在要通过菜单enable状态来确定Excel的状态的话,加个timer控件不停地判断Excel状态,再反馈到菜单的enable属性上
2023年03月29日 03点03分
@空中熬翔🌴 不需要timer控件,我的目的就是想加一些代码来判断excel意外关闭情况(在语句If Mnu_Close.Enabled = True Then 之前加入判断,退出本过程)。3楼的代码我也试过了,会出现4楼的情况。文件根本不存在,ExcelBook.Close不能执行。
2023年03月29日 06点03分
@tbzp666 看楼下
2023年03月29日 08点03分
level 13
好吧,贴个代码居然说有不当言论
2023年03月29日 08点03分 6
level 8
tbzp666 楼主
没有用
2023年04月04日 08点04分 7
level 13
上面的代码我自己敲出来并测试通过的,我怀疑你自己试过没有,就说一句没有用,什么问题也不说,没人有义务帮你,再这样我也帮不了你,告辞
2023年04月05日 10点04分 8
这话说的有点伤感情了,我照上面代码打后,文件也关联了,打开文件之后,就死机了,什么也没有显示,关键是“关闭”和“保存”两个菜单项可用性也没有启用
2023年04月06日 02点04分
兄弟,刚想明白你的用意,运行后删也删不掉
2023年04月06日 03点04分
回复 tbzp666 :这代码还能死机?mnu_open_click过程调用Excel的代码你自己一楼也是这么写的,难道是filename你没有自己赋值?
2023年04月06日 03点04分
@tbzp666 运行后代码删不掉?你不停止运行怎么删代码
2023年04月06日 03点04分
1