我是很新,VBA,但我已經通過這些論壇閱讀發現在我的方式。我從來沒有遇到與Application.ScreenUpdating不工作,並經過在線研究的問題,我無法找到我的問題的答案。Application.ScreenUpdating不會更改爲false
我創建在Excel中給出了每日清單一個月視圖中的每日清單中的應用。這些任務按行排隊,您只需在日曆上選擇該任務的yes,no或N/a。您可以保存清單,並將信息複製到單獨的選項卡中的數據表。除了在保存信息時Application.Screenupdating不起作用並且用戶最終看到數據表和日曆視圖之間的閃爍和跳來跳去之外,一切都很完美。
爲什麼Application.ScreenUpdating沒有改變,以虛假的任何意見或指導?我嘗試過在不同的區域移動它,但似乎沒有任何工作。
這裏的保存清單子:
Sub Save_Checklist()
Dim Checklist_Date
Dim Completed As Long
Dim Left_to_Complete As Long
Dim Database_Date As Range
Dim Database_Row As Long
Dim bScrUpdate
bScrUpdate = Application.ScreenUpdating
If bScrUpdate = True Then Application.ScreenUpdating = False
Worksheets("Database").Unprotect Password:="youngC"
If MsgBox("This button will save this month's checklist data into the database. All previous information will be overwritten. Would you like to continue?", vbYesNoCancel, "Reset the Calender") = vbYes Then
Checklist_Date = Worksheets("Daily Checklist").Range("E4").Value
Add_to = Worksheets("Daily Checklist").Range("AL1").Value
Range("E55").Select
ActiveCell.Resize(2, Add_to).Select
Selection.Copy
On Error Resume Next
With Worksheets("Database").Activate
Range("A1:A366").Select
Selection.Find(What:=Checklist_Date, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Select
On Error GoTo 0
If Not Database_Date Is Nothing Then Application.Goto Database_Date, True
End With
Selection.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Worksheets("Database").Protect Password:="youngC"
Else
MsgBox ("Please be sure all information is correct before saving it.")
End If
If Not Application.ScreenUpdating = bScrUpdate _
Then Application.ScreenUpdating = bScrUpdate
End Sub
這是我在打開工作簿上運行的代碼(我已在「添加任務到月的日曆」片分組):
Private Sub Workbook_Open()
Worksheets("Main Menu").Activate
With Worksheets("Add Tasks to Month's Calendars")
.EnableOutlining = True
.Protect Password:="youngC", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
任何幫助都將不勝感激。
謝謝, 克里斯
你的標題說它不會變成'FALSE',但你的問題說它不起作用。這是什麼? –
另外,我不認爲它做任何傷害,但設置了'Boolean'值'FALSE'如果是TRUE;是一樣,它設置爲'FALSE',所以你可以縮短代碼,這兩條線。 –
我對問題中的誤解表示歉意。宏運行得很好,所以代碼工作。 Application.Screenupdating = False不起作用,因此當用戶單擊分配給此宏的按鈕時,屏幕會更改。 –