| Zamiana numeru kolumny na literę |
|
Tworząc kod w Visual Basicu niejednokrotnie wykorzystywane są operacje polegające na zmianie numerów wierszy i kolumn. W przypadku wierszy nie jest to problemem ponieważ odwołania do nich są w postaci numerycznej. Inaczej ma się sprawa kolumn. Owszem, tu również można odwoływać się za pomocą postaci numerycznej, ale czasami jest to niemożliwe, bądź też niewygodne.
Z drugiej strony operowania odwołaniami do kolumn w postaci literowej jest niewygodne. Dlatego, też o wiele łatwiej operować jest na liczba, które opisują kolumny, a dopiero na samym końcu dokonać zamiany liczby na litery, które stanowią odwołanie do danej kolumny. W tym celu można wykorzystać poniższa funkcję:
Function ColumnLetter(ColumnNumber As Integer) As String If ColumnNumber > 26 Then ?Numer kolumny jest większy od 26, czyli do opisania kolumny potrzebne są dwie litery. ColumnLetter = Chr(Int((ColumnNumber - 1) / 26) + 64) & Chr(((ColumnNumber - 1) Mod 26) + 65) Else 'Numer kolumny jest mniejszy, bądź równy 26, czyli do opisu kolumny wystarczy tylko jedna litera. ColumnLetter = Chr(ColumnNumber + 64) End If End Function Mając tak zdefiniowaną funkcję można już zapomnieć o problemach wynikających z używania liter do opisu kolumn. Funkcję tą można używać, zarówno w makrach, jak również w arkuszu kalkulacyjnym. Poniżej znajduje się przykład zastosowania funkcji w arkuszu kalkulacyjnym.
|