czy ktoś może mi powiedzieć, dlaczego, kiedy odnoszą się do konkretnego arkusza, mogę użyć:„workbooks.worksheets.activate” działa, ale „.Wybrać” nie
workbooks("A").worksheets("B").activate
ale nie
workbooks("A").worksheets("B").select
?
czy ktoś może mi powiedzieć, dlaczego, kiedy odnoszą się do konkretnego arkusza, mogę użyć:„workbooks.worksheets.activate” działa, ale „.Wybrać” nie
workbooks("A").worksheets("B").activate
ale nie
workbooks("A").worksheets("B").select
?
Nie można wybrać arkusza w nieaktywnym skoroszycie.
Najpierw należy aktywować skoroszyt, a następnie wybrać arkusz.
workbooks("A").activate
workbooks("A").worksheets("B").select
Użycie opcji Aktywuj automatycznie powoduje uaktywnienie skoroszytu.
Uwaga można wybrać> 1 arkusz w skoroszycie:
activeworkbook.sheets(array("sheet1","sheet3")).select
ale tylko jeden arkusz może być aktywny, a jeśli aktywować kartę, która nie jest częścią zaznaczenia wielu arkuszy następnie tych, inne arkusze zostaną un-selected.
Dziękuję bardzo! Pamiętam, że czytałem skądś, że .select nie jest polecany, czy wiesz dlaczego? – user2495069
Ta rada zazwyczaj pochodzi z generowania makr bez żadnych zmian. Zazwyczaj rejestrator generuje kod taki jak "Range (" A1 "), wybierz", a następnie 'Selection.Copy', podczas gdy znacznie łatwiej jest zrobić' Range ("A1"). Jeśli twój kod używa 'Wybierz' (szczególnie w zakresach), to może się zepsuć, jeśli aktywny jest" niewłaściwy "arkusz, co sprawia, że twoje makro jest mniej odporne. Unikanie selekcji i pracy bezpośrednio na samym obiekcie jest szybsze i mniej kruche. –
Rozumiem! Wielkie dzięki! Czy mogę zadać jeszcze jedno pytanie? W jakich okolicznościach arkusz aktywacyjny zostanie zmieniony, powiedz, czy aktualny arkusz aktywacyjny jest B, a następnie zmieniam format lub wartość komórki w arkuszu A, czy arkusz aktywny stanie się arkuszem A? – user2495069