2013-07-01 12 views

Odpowiedz

22

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.

+0

Dziękuję bardzo! Pamiętam, że czytałem skądś, że .select nie jest polecany, czy wiesz dlaczego? – user2495069

+1

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. –

+1

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

Powiązane problemy