以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  excel表显示处于只读  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56302)

--  作者:hbhb
--  发布时间:2014/9/2 20:18:00
--  excel表显示处于只读
大师:excel显示只读,打开资源管理器又看不到excel运行?是什么原因?ShowAppWindow("订单.xls",5)关闭又显示不允许?
--  作者:有点甜
--  发布时间:2014/9/2 20:20:00
--  

 很大原因,是你运行了vba,但是最后没有把 app.Quit 导致的。

 

 你看进程那里,把所有Excel.exe的进程都杀死


--  作者:hbhb
--  发布时间:2014/9/2 20:23:00
--  
加了数个也没用?进程里光头一个,一根头发没有?也不行?
--  作者:有点甜
--  发布时间:2014/9/2 20:25:00
--  
 进程啊,不叫你看【应用程序】,看【进程】啊
--  作者:hbhb
--  发布时间:2014/9/2 20:27:00
--  
怎么看?ctrl +alt +delete  行不行?
--  作者:有点甜
--  发布时间:2014/9/2 20:30:00
--  

 直接给你代码算了

 

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("Excel")
For Each p As System.Diagnostics.Process In ps
    p.kill
Next


--  作者:hbhb
--  发布时间:2014/9/2 20:55:00
--  
有效!谢谢!针对具体文件是否可以,运行excelvba时经常出现此情况?
--  作者:有点甜
--  发布时间:2014/9/2 20:58:00
--  

 回复7楼,是的,一般使用vba的时候都这样写

 

Dim app

 

Try

    \'正常代码

    app.Quit

Catch ex As Exception

    \'错误的时候,关闭

    app.Quit

End Try


--  作者:有点甜
--  发布时间:2014/9/2 21:00:00
--  

某个Excel文件

 

    Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("Excel")

    For Each p As System.Diagnostics.Process In ps
        If p.MainWindowTitle.Contains("订单") Then
            p.kill
        End If
    Next

--  作者:hbhb
--  发布时间:2014/9/2 21:04:00
--  
谢谢!这样好多了 !