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