'********************************************************************************************************** ' Nazwa: czyPrawidlowyZakres ' Autor: mielk | 2013-04-26 ' ' Opis: Funkcja sprawdzająca czy podany zakres komórek Excela jest prawidłowy i można ' odwoływać się do jego właściwości i metod bez obawy, że zostanie wygenerowany błąd. ' ' Funkcja jest bardzo pomocna, ponieważ pozwala uniknąć błędu ' Run-time error '-2147221080 (800401a8)': Automation error. ' Błąd ten jest generowany w sytuacji, kiedy kod próbuje się odnieść do właściwości ' lub metody zakresu komórek Excelu, ale nie może tego zrobić, ponieważ arkusz w ' którym znajduje się ten zakres został usunięty lub plik, w którym znajduje się ' ten zakres został wcześniej zamknięty. ' ' Argumenty: ' zakres Sprawdzany zakres komórek Excela. ' ' Zwraca: ' Boolean True - jeżeli sprawdzany zakres komórek jest prawidłowy i bez obaw można się ' odnosić do jego właściwości i metod. ' False - jeżeli podany zakres komórek jest nieprawidłowy (zazwyczaj przyczyną jest ' fakt, że arkusz, w którym znajduje się ten zakres został usunięty lub ' plik został wcześniej zamknięty). ' ' ' --- Zmiany ---------------------------------------------------------------------------------------------- ' 2013-04-26 mielk Utworzenie funkcji. '********************************************************************************************************** Public Function czyPrawidlowyZakres(zakres As Excel.Range) As Boolean Const NAZWA_METODY As String = "czyPrawidlowyZakres" '------------------------------------------------------------------------------------------------------ Dim lngPierwszyWiersz As Long '------------------------------------------------------------------------------------------------------ On Error Resume Next lngPierwszyWiersz = zakres.wiersz 'Metoda sprawdzenia jest bardzo prosta - jeżeli pierwszy wiersz podanego zakresu komórek został 'przypisany do zmiennej [lngPierwszyWiersz], oznacza to, że ten zakres komórek jest prawidłowy i można 'odwoływać się do jego właściwości bez obawy o pojawienie się błędów. If lngPierwszyWiersz > 0 Then czyPrawidlowyZakres = True End Function