為何Application.ScreenUpdating = False 畫面還會動
- 帖子
- 549
- 主題
- 152
- 精華
- 0
- 積分
- 691
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-8-10
- 最後登錄
- 2022-9-7
 
|
為何Application.ScreenUpdating = False 畫面還會動
我的程式碼第一行就輸入
Application.ScreenUpdating = False
後面接著會開啟另外一個excel檔
然後從SHEET(1) ~SHEET(12)
分別切換著執行
但我發現畫面還是會動...(程式碼有點亂,不好意思)
有可能是甚麼原因導致的嗎?積分 & 成交的表皆無Application.ScreenUpdating =TRUE的指令
Sub autoRun()
'If Sheets(1).Cells(1, 1) = "xxx" Then Exit Sub
Application.ScreenUpdating = False
nowName = Application.ActiveWorkbook.Name
'判斷目前是否開啟
On Error Resume Next
Windows("莊敬店開發.業績.出勤一覽表.xlsm").Activate
If Err.Number = 9 Then GoTo F1
AA = 1
GoTo f2
F1: Workbooks.Open (Mid(ThisWorkbook.Path, 1, 31) & "2-會計\莊敬店開發.業績.出勤一覽表.xlsm")
AA = 2
f2: Windows(nowName).Activate
For i = 1 To Month(Date)
Sheets(i).Activate
Call 積分
Windows(nowName).Activate
Sheets(i).Activate
Call 成交
Next i
'判斷是否需要關閉檔案
'Call autoLock
f3: If AA = 1 Then
Windows(nowName).Activate
ElseIf AA = 2 Then
Windows("莊敬店開發.業績.出勤一覽表.xlsm").Close saveChanges:=False
End If
Sheets(Month(Date)).Activate
Application.ScreenUpdating = True
End Sub |
|
|
PKKO
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
2#
發表於 2014-8-12 08:41
| 只看該作者
回復 1# PKKO
你是如何執行的程式
如是vba 中按F8逐行執行程式看畫面是會改變
Application.ScreenUpdating = False 沒有作用的 |
|
|
|
|
|
|
|
- 帖子
- 549
- 主題
- 152
- 精華
- 0
- 積分
- 691
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-8-10
- 最後登錄
- 2022-9-7
 
|
3#
發表於 2014-8-12 12:16
| 只看該作者
我是巨集直接整個執行,會發現他從Sheets(1)跳到目前月份的sheet
所以感覺速度有點慢 |
|
|
PKKO
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
4#
發表於 2014-8-14 01:31
| 只看該作者
回復 3# PKKO
感覺上是 Sheets(i).Activate 的關係,
你試試先不執行看看. (該行最前面加個 ; )
若你 Call 的副程式中有 Selection 之類需要標的 Sheet 為作動中(Active)的指令,
建議你改用 with 來索引相關物件就不需要先執行 Activate 了.
我的經驗是 : 執行過 Application.ScreenUpdating = False 後並非畫面就一定會不會變動了,
某些時候它還是會動給你看. |
|
|
|
|
|
|
|
- 帖子
- 549
- 主題
- 152
- 精華
- 0
- 積分
- 691
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-8-10
- 最後登錄
- 2022-9-7
 
|
5#
發表於 2014-8-14 09:32
| 只看該作者
回復 4# luhpro
感謝,我了解您的意思了,我還不太會使用WITH 的方式,先爬個文,若有問題再提出,謝謝^_^ |
|
|
PKKO
|
|
|
|
|