簡體   English   中英

Excel工作簿僅在運行代碼完成后顯示

[英]Excel workbook only shows after running code is finished

我在Excel工作簿中有一個程序,該程序可打開Powerpoint文件,更新此文件中的鏈接並在此之后將其關閉。 這很好。 這是我的問題:更新鏈接后,將打開帶有源數據的Excel文件。 關閉Powerpoint后,此文件保持打開狀態。 我希望將其關閉,因為我對許多文件重復了此過程,但最終無法獲得數百個打開的Excel文件。

我嘗試了以下方法:

WBKs=Application.Workbooks.count
For i = WBKs to 1 Step -1
    If Workbooks(i).Name<>ThisWorkbook.Name then
        Workbooks(i).close savechanges:=False
    End if
Next i

現在來了怪異的部分。 每當我運行代碼時,WBK始終返回1,並且僅在代碼完成后才彈出Excel文件。 如果我在調試模式下瀏覽代碼,它將起作用。 進入調試模式后,工作簿將彈出。

我嘗試了Applicatio.Wait ,希望文件能在一秒鍾后顯示出來。 該文件僅在代碼完成后顯示。

我嘗試了“ Do While Loop以等待文件打開。 Excel崩潰是因為我從不離開循環。

編輯:我按照建議嘗試了DoEvents 也不起作用。

這只是一種解決方法,但是請在運行x倍的宏后嘗試使用蠻力。 x存儲在工作簿中的某個位置,保存。 並殺死excel進程(所有實例,包括self):

Dim sKill As String

sKill = "TASKKILL /F /IM excel.exe"
Shell sKill, vbHide

在這里找到: VBA腳本可關閉除自身以外的所有Excel實例

下次運行宏時,您將使用x作為下一個要更新的PPT文件的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM