2016-06-28 102 views
0

我在使用application.displayalerts = false的excel VBA中遇到問題。VBA DisplayAlert未設置爲false

當我在程序中發送此命令行時,displayalerts屬性不會更改爲false,它仍然爲true。當我在即時窗口中執行它時,它變成了錯誤。我找不到與此相關的任何內容。

我已經檢查過EnableEvent屬性,因爲我在另一個主題上找到它,它已啓用。

我不確定我應該發佈我的代碼的哪一部分,因爲我在我想要的地方,我的代碼中間以及作爲第一行代碼嘗試了此命令。此外,這是運行在其他模塊的Excel文件,其中一些具有公共功能(這不應該影響任何東西),有些具有我粘貼下面的公共變量。除此之外,這是一個完整獨立的代碼,真的不上其他的人

Public pctCompl As Integer 
Public statCol As Collection 
Public session As NotesSession 
Public db As NotesDatabase 
Public lmt As Integer 

的代碼我使用了顯示警報

Application.DisplayAlerts = false 

讓我知道還有什麼信息你球員需要或編碼

編輯: 這裏是代碼。在執行該行後,displayalerts屬性仍然設置爲true,因此不會在代碼的其他部分將其設置爲true,該行不會更改屬性,這非常奇怪,因爲它確實會更改它當我執行它的直接窗口

Sub Main() 

Dim Mwksh As Worksheet 
Dim Metwksh As Worksheet 
Dim Swksh As Worksheet 
Application.DisplayAlerts = False ''''''Dont work 
'Set the worbooks 
Set Mwksh = ThisWorkbook.Sheets(MASTER_SHT) 
Set Swksh = ThisWorkbook.Sheets(SUPPORT_SHT) 

'Open the Metrics workbook 
Set Metwksh = OpenFile 

'Find the Master File last column and row 
clLast = LastCol(Mwksh, MASTER_HEADER_ROW) 
rwLast = LastRow(Mwksh) 

'Copy the content from the master file to the support sheet so it can be fixed before being copied to the metrics file 
Swksh.UsedRange.ClearContents 
Mwksh.Range(MASTER_FIRST_COL & MASTER_HEADER_ROW & ":" & clLast & rwLast).Offset(1, 0).Copy Destination:=Swksh.Range("A1") 

DeleteColumns Swksh 

InsertColumns Swksh 

ClearDataSheet Metwksh 

CopyToData Swksh, Metwksh 

Metwksh.Parent.RefreshAll 

Metwksh.Parent.Close savechanges:=True 

MsgBox "Metrics file updated!" 

End Sub 
+3

它是'DisplayAlerts'而不是'DisplayAlert',它會在代碼結束時重置。 – Rory

+0

S是我的帖子上的一個錯字,我在代碼中將它寫爲Application.DisplayAlerts。對不起)=) – Tocchetto

+0

然後你應該發佈實際使用'Displayalerts'的代碼,並指出你如何測試它實際上沒有被正確設置。 – Rory

回答

0

使用

Application.DisplayAlerts = False 
Your code here 
Application.DisplayAlerts = True 

你忘了在一端S

如果這不能解決問題,使用[your instance name].DisplayAlerts代替Application.DisplayAlerts

+0

這是我的帖子中的一個錯字,我現在編輯它。你的意思是實例名稱?如果不是我明確創建的實例,如何引用當前的Excel實例? – Tocchetto

相關問題