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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'**********************************************************************************************************
' Nazwa: naglowekKolumny
' Autor: mielk | 2012-02-22
'
' Opis: Funkcja zwraca literowy symbol kolumny o określonym indeksie.
'
' Argumenty:
' indeksKolumny Numer kolumny, której symbol ma być zwrócony przez funkcję.
' * Argument musi być liczbą całkowitą większą od zera. Jeśli argument jest mniejszy
' lub równy zeru, zwracany jest wyjątek UjemnyIndeksKolumny.
'
' Zwraca:
' String Symbol kolumny o podanym numerze indeksu.
' * Jeżeli podany indeks kolumny jest mniejszy niż 0, zwracany jest pusty
' ciąg znaków.
' * Funkcja obsługuje większy zakres indeksów niż liczba kolumn w jakiejkolwiek
' wersji Excela, z uwagi na możliwe zwiększenie tej liczby w przyszłych wersjach
' Excela.
'
'
' Wyjątki:
' UjemnyIndeksKolumny Wywoływany kiedy numer kolumny przekazany do funkcji jest ujemny albo
' równy zero.
'
'
' --- Zmiany ----------------------------------------------------------------------------------------------
' 2012-02-22 mielk Utworzenie funkcji.
'**********************************************************************************************************
Public Function naglowekKolumny(indeksKolumny As Long) As String
Const NAZWA_METODY As String = "naglowekKolumny"
'------------------------------------------------------------------------------------------------------
Const ALFABET_LICZNIK As Byte = 26
Const ASCII_PRZED_A As Byte = 64
'------------------------------------------------------------------------------------------------------
Dim lTemp As Long
Dim iLitera As Integer
'------------------------------------------------------------------------------------------------------
'Funkcja sprawdza czy podany indeks kolumny jest większy od zera. Jeśli nie, wykonywanie kodu -------|
'przenoszone jest do wyjątku UjemnyIndeksKolumny. '|
If indeksKolumny <= 0 Then GoTo UjemnyIndeksKolumny '|
'----------------------------------------------------------------------------------------------------|
'----------------------------------------------------------------------------------------------------|
lTemp = VBA.Int(indeksKolumny) '|
Do '|
iLitera = lTemp Mod ALFABET_LICZNIK '|
If iLitera = 0 Then iLitera = ALFABET_LICZNIK '|
naglowekKolumny = VBA.Chr$(iLitera + ASCII_PRZED_A) & naglowekKolumny '|
lTemp = Excel.WorksheetFunction.RoundUp((lTemp - ALFABET_LICZNIK) / ALFABET_LICZNIK, 0) '|
Loop While lTemp > 0 '|
'----------------------------------------------------------------------------------------------------|
'==========================================================================================================
PunktWyjscia:
Exit Function
'----------------------------------------------------
UjemnyIndeksKolumny:
'(...)
'Obsługa błędów dla sytuacji, kiedy numer kolumny przekazany do funkcji jest ujemny lub równy zeru.
GoTo PunktWyjscia
End Function