2016-06-20 4 views
0

Ich habe ein Makro, das eine Arbeitsmappe (wb1) öffnet und es in eine andere Arbeitsmappe (wb2) kopiert, schließt dann wb1. Ich werde jedoch immer die Nachricht unten angezeigt, dass eine große Menge an Daten in der Zwischenablage ist, die ich nicht aufgefordert werden möchte. Nach einigen Nachforschungen fand ich, dass das Setzen des 'Application.CutCopyMode'-Satzes auf false (was die Zwischenablage löscht) dieses Problem lösen würde, aber nicht.Zwischenablage Warnmeldung beim Schließen einer Datei nicht unterdrücken

Application.CutCopyMode = False 
... 

'copy the range from source book 
wb1.Worksheets("Sheet1").Range("A1:V2").Copy 
'paste the data on the target book 
wb2.Worksheets("Sheet1").Range("A1:V2").PasteSpecial 

wb.Close savechanges:=False 

enter image description here

Wie kann ich die Datei zu schließen, ohne diese Meldung?

+1

Sie vielleicht einen Blick auf die folgenden haben wollen 22328170/1153513 Beachten Sie, dass Sie die Zwischenablage für die ursprüngliche Arbeitsmappe löschen müssen. Also, sollte es in Ihrem Beispiel sein 'wb1.Application.CutCopyMode = False' – Ralph

Antwort

1

Wenn Sie keine Nachrichten zu unterdrücken, fügen Sie die folgende vor dem Schließen der Datei:

Application.DisplayAlerts = False

Wenn Sie den Inhalt der Zwischenablage löschen möchten, sollten Sie die Application.CutCopyMode = False hinzufügen, nachdem die Copy/Paste-Operationen . Gefällt mir:

... 

'copy the range from source book 
wb1.Worksheets("Sheet1").Range("A1:V2").Copy 
'paste the data on the target book 
wb2.Worksheets("Sheet1").Range("A1:V2").PasteSpecial 

Application.CutCopyMode = False 

wb.Close savechanges:=False 
+0

Aber was ist, wenn andere wichtige Warnungen auftauchen? – BDillan

+0

Ah, ok ... Sie wollen nur diese Warnung unterdrücken. In diesem Fall sollten Sie 'Application.CutCopyMode = False' nach dem Ausführen der Kopieren/Einfügen-Aktionen und Sie können die' Application.DisplayAlerts = FALSE' Anweisung löschen. Ich werde meine Antwort aktualisieren –

1

Was genau ist das spezielle Einfügen, das Sie tun möchten? Wenn Sie nur über die Werte kopieren möchten, dann anstelle des Kopierens & Einfügen, weisen nur die Werte direkt: http://stackoverflow.com/a/:

wb2.Worksheets("Sheet1").Range("A1:V2").value = wb1.Worksheets("Sheet1").Range("A1:V2").value 
Verwandte Themen