Ich arbeite an einem VBA-Projekt in einer Arbeitsmappe. Der Code öffnet eine neue Arbeitsmappe und ruft eine externe API auf, die eine Reihe von Daten in mehrere Arbeitsblätter dieser neuen Arbeitsmappe herunterlädt und einfügt. Ich habe die Bildschirmaktualisierung ( Application.Screenupdating = False
) deaktiviert, so dass der Bildschirm zunächst auf die ursprüngliche Arbeitsmappe fokussiert bleibt, während die API Daten auf der anderen Arbeitsmappe im Hintergrund herunterlädt. Wenn die API Daten einfügt, wechselt der Bildschirm jedoch zu der neuen Arbeitsmappe. Wie kann ich das verhindern? Vielen Dank!
Sie müssen entweder die Zielarbeitsmappe speichern und schließen oder die ursprüngliche Arbeitsmappe auswählen, bevor die Bildschirmaktualisierung wieder aktiviert wird.
Ich arbeite an einem VBA-Projekt in einer Arbeitsmappe. Der Code öffnet eine neue Arbeitsmappe und ruft eine externe API auf, die eine Reihe von Daten in mehrere Arbeitsblätter dieser neuen Arbeitsmappe herunterlädt und einfügt. Ich habe die Bildschirmaktualisierung ( ActiveWorkbook
) deaktiviert, so dass der Bildschirm zunächst auf die ursprüngliche Arbeitsmappe fokussiert bleibt, während die API Daten auf der anderen Arbeitsmappe im Hintergrund herunterlädt. Wenn die API Daten einfügt, wechselt der Bildschirm jedoch zu der neuen Arbeitsmappe. Wie kann ich das verhindern? Vielen Dank!
Sie müssen entweder die Zielarbeitsmappe speichern und schließen oder die ursprüngliche Arbeitsmappe auswählen, bevor die Bildschirmaktualisierung wieder aktiviert wird.
Sie könnten versuchen, die API-Funktion von ShowWindow zu verwenden:
%Vor%Oder alternativ die LockWindowUpdate-API-Funktion (danke an Chip Pearson, Ссылка ):
%Vor%