Czy prawidłowy zakres


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'**********************************************************************************************************
' 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