Moje makro aktualizuje duży arkusz kalkulacyjny z liczbami, ale działa bardzo wolno, ponieważ program Excel renderuje wynik podczas jego obliczania. Jak zatrzymać program Excel od renderowania danych wyjściowych, dopóki makro nie zostanie ukończone?Jak uniemożliwić programowi Excel renderowanie arkusza kalkulacyjnego, ponieważ moje makro go oblicza?
Odpowiedz
korzystać zarówno z proponowanych rozwiązań:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Można wyłączyć automatyczne obliczanie w oknie dialogowym opcji, ustawia je tak, aby obliczał się tylko po naciśnięciu klawisza F9.
Application.ScreenUpdating = False
I oczywiście ustawić ją z powrotem na True ponownie, gdy skończysz, nawet jeśli błąd jest podniesiona. Przykład:
Public Sub MyMacro
On Error GoTo ErrHandler
Application.ScreenUpdating = False
... do my stuff that might raise an error
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
Application.ScreenUpdating = True
... Do something with the error, e.g. MsgBox
End Sub
Opierając Joe i jasnowidz (ta wykorzystuje składnię stary, więc jest to zgodne z VBA Office 2000):
On Error Goto AfterCalculation
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
AfterCalculation:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Ja również wolę korzystać z obu proponowanych rozwiązań, , ale także zachować tryb poprzednich obliczeń użytkowników.
Do tego konkretnego zastosowania może to być nic wielkiego, ale to zwykle najlepsze praktyki aby użytkownicy mają ich ustawienia przywrócone po zabiegu jest zakończona:
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
NB. Byłoby warto poświęcić trochę czasu na wstawienie obsługi błędów, która włącza Application.ScreenUpdating w przypadku wystąpienia błędu w Twoim znakomitym kodzie;) Jeśli pamięć służy mi poprawnie, Excel nie będzie wyświetlał żadnych błędów itp., Gdy ScreenUpdating = false. coś takiego:
Sub DoSomeThing
On Error Goto DisplayError
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
Exit Sub
DisplayError:
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
MsgBox Err.Description
End 'This stops execution of macro, in some macros this might not be what you want'
'(i.e you might want to close files etc)'
End Sub
- 1. Importowanie danych arkusza kalkulacyjnego Excel do innego arkusza kalkulacyjnego Excel zawierającego VBA
- 2. Ustawianie właściwości właściwości arkusza kalkulacyjnego programu Excel
- 3. Czytanie arkusza kalkulacyjnego Excel w pamięci
- 4. Skopiuj dane R data.frame do arkusza kalkulacyjnego Excel
- 5. Eksportowanie rekordów do arkusza kalkulacyjnego
- 6. Kopiowanie arkusza kalkulacyjnego za pomocą Apache POI
- 7. Korzystanie Perl odczytać znaki francuskie z arkusza kalkulacyjnego Excel
- 8. Eksportowanie programu Excel do arkusza kalkulacyjnego XML z pustymi komórkami
- 9. Niestandardowa funkcja arkusza kalkulacyjnego Google wykonana z wbudowanych funkcji arkusza kalkulacyjnego
- 10. Czytanie arkusza kalkulacyjnego programu Excel 2007 w języku C#
- 11. Zapisywanie arkusza kalkulacyjnego programu Excel za pomocą Interop C#
- 12. Skrypt warunkowego formatowania arkusza kalkulacyjnego Google
- 13. makro, aby zaimportować plik CSV do arkusza nieaktywnego programu Excel
- 14. Java do arkusza kalkulacyjnego Google
- 15. Excel VBA Użyj zaznaczonego arkusza
- 16. Zmień nazwę arkusza programu Excel na makro VBA
- 17. Jak ładować określony arkusz z arkusza kalkulacyjnego
- 18. Jak skonstruować aplikację arkusza kalkulacyjnego w wiąz?
- 19. Jak szybko i łatwo przekonwertować dane arkusza kalkulacyjnego na JSON?
- 20. Jak uniemożliwić programowi Visual Studio tworzenie folderu "Właściwości"?
- 21. Jak używać NPOI do czytania arkusza kalkulacyjnego Excel zawierającego puste komórki?
- 22. Link do arkusza kalkulacyjnego Google do określonego arkusza
- 23. Konwertować pliki lokalizacyjne do arkusza kalkulacyjnego?
- 24. Analiza JSON z arkusza kalkulacyjnego Google
- 25. Otwieranie arkusza kalkulacyjnego zwraca komunikat InMemoryUploadedFile
- 26. Rozszerzenie Chrome Pisanie do arkusza kalkulacyjnego Google
- 27. Zaktualizuj istniejące wartości bazy danych z arkusza kalkulacyjnego
- 28. Reprezentowanie hierarchii drzewa za pomocą arkusza kalkulacyjnego Excel, aby można go było łatwo przetworzyć za pomocą czytnika Python CSV?
- 29. Potrzebujesz więcej przykładów na temat korzystania z arkusza kalkulacyjnego :: ParseExcel
- 30. Jak wstawić podział wiersza w komórce arkusza kalkulacyjnego OPENXML?
moje makro działa tylko kiedy go wykonać, więc jestem dobrze w tym względzie, ale nie chcę oglądać excel wokół kopiowanie danych (jak określone przez makro), tylko końcowy wynik: – Oskar