Funkcja VBA SpecialCells(xlCellTypeBlanks) nie działa zgodnie z oczekiwaniami w programie Excel
Symptomy
Podczas tworzenia makra usługi Microsoft Visual Basic for Applications (VBA), które wybiera wiele nieciągłych zakresów w skoroszycie programu Microsoft Excel, które używa wyrażenia VBA podobnego do następującego, akcje, które miały wystąpić tylko w przypadku komórek nieciągłych, występują w każdej komórce w oryginalnym zaznaczeniu arkusza:
expression.SpecialCells(XlCellType).expression XlCellType
Może to być dowolny z następujących elementów:
- xlCellTypeAllFormatConditions
- xlCellTypeAllValidation
- xlCellTypeBlanks
- xlCellTypeComments
- xlCellTypeConstants
- xlCellTypeFormulas
- xlCellTypeSameFormatConditions
- xlCellTypeSameValidation
- xlCellTypeVisible
Przyczyna
To zachowanie występuje, jeśli wybierzesz więcej niż 8192 nieciągłych komórek za pomocą makra. Program Excel obsługuje tylko maksymalnie 8192 nieciągłych komórek za pośrednictwem makr VBA.
Zazwyczaj jeśli spróbujesz ręcznie wybrać więcej niż 8192 nieciągłych komórek, zostanie wyświetlony następujący komunikat o błędzie:
Wybór jest zbyt duży.
Jednak w przypadku korzystania z makra VBA w celu dokonania tego samego lub podobnego wyboru nie zostanie zgłoszony żaden komunikat o błędzie i nie zostanie wygenerowany żaden kod błędu, który można przechwycić za pośrednictwem procedury obsługi błędów.
Obejście problemu
Aby obejść to zachowanie, możesz utworzyć strukturę pętli w makrach VBA, która obsługuje mniej niż maksymalnie 8192 komórki.
Stan
Takie działanie jest celowe.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla