2016-06-28 7 views
0

Ich habe ein Problem in Excel VBA mit application.displayalerts = false.VBA DisplayAlert nicht auf false

Wenn ich diese Befehlszeile in meinem Programm sende, ändern sich die displayalerts Eigenschaften nicht zu false, es bleibt wahr. Wenn ich es im unmittelbaren Fenster ausführe, wird es falsch angezeigt. Ich konnte nichts dazu finden.

Ich habe bereits auf die EnableEvent-Eigenschaften überprüft, wie ich zu einem anderen Thema gefunden habe, ist es aktiviert.

Ich bin mir nicht sicher, welchen Teil meines Codes ich posten sollte, weil ich diesen Befehl sowohl in der Mitte meines Codes als auch in der ersten Zeile des Codes ausprobiert habe. Auch das läuft auf einer Excel-Datei, die andere Module hat, einige von ihnen haben öffentliche Funktionen (die nichts beeinflussen sollen) und einige haben öffentliche Variablen, die ich unten eingefügt habe. Other than that, ist dies ein kompletter unabhängiger Code, der auf dem anderen nicht wirklich

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

Der Code, den ich für die Display-Benachrichtigung

Application.DisplayAlerts = false 

Lassen Sie uns wissen, was sonst noch Informationen, die Sie Jungs brauchen oder Code

EDIT: hier ist der Code. Gleich nachdem die Zeile ausgeführt wurde, wird das displayalerts-Merkmal immer noch auf "true" gesetzt, es ist also nicht der Fall, dass es in einem anderen Teil des Codes auf "true" gesetzt ist. Die Zeile verändert nicht die Eigenschaften, was sehr merkwürdig ist, weil sie es ändert wenn ich es auf dem sofortigen Fenster

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

Sie

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

Es ist 'DisplayAlerts' nicht' DisplayAlert', und es wird zurückgesetzt, wenn der Code endet. – Rory

+0

Das S war ein Tippfehler auf meinem Post, ich schrieb es als Application.DisplayAlerts auf den Code. sorry bout that =) – Tocchetto

+0

Dann sollten Sie den Code, der tatsächlich 'Displayalerts' verwendet, und geben Sie an, wie Sie testen, dass es tatsächlich nicht richtig festgelegt ist. – Rory

Antwort

0

verwenden ausführen vergessen, die s am Ende

Wenn dies das Problem nicht lösen, verwenden [your instance name].DisplayAlerts statt Application.DisplayAlerts

+0

Das s war ein Tippfehler in meinem Post, ich habe es jetzt bearbeitet. Was meinst du mit Instanznamen? Wie referenziere ich die aktuelle Excel-Instanz, wenn es sich nicht um eine Instanz handelt, die ich explizit erstellt habe? – Tocchetto

Verwandte Themen