GWARANTOWANE TERMINY
Jesteś tutaj: strona głównastrefa wiedzyCzary mary z ASCII oraz VBA
MENU

Czary mary z ASCII oraz VBA


Kategoria: Kurs VBA, Samouczek Excel , Kurs Excel
24Mar

Rozwiązywanie problemów i zadań w arkuszu kalkulacyjnym nie zawsze jest łatwe. Czasem wystarczy prosta funkcja a niekiedy musimy zastosować zaawansowane narzędzie - jak na przykład język VBA czy kod ASCII. 

Jak sprawnie i skutecznie korzystać języka VBA i kodu ASCII opowie trener i ekspert Cognity Grzegorz Plak.

Przykładem, który posłuży nam podczas nauki będzie problem uczestnika jednego z naszych szkoleń otwartych. Zadanie, którego rozwiązania podjął się Pan Grzegorz widoczne jest na rysunku nr. 1 

rys 1

Rys. 1. Zadanie rozdzielenia imienia oraz nazwiska

Funkcje VBA

Napisanie funkcji dla większości osób zajmujących się językiem VBA nie jest wymagającym zadaniem w przypadku, gdy między imieniem a nazwiskiem występuje separator np. spacja. Jednak w tym zadaniu nie ma typowego ogranicznika. W związku z tym zadanie z pozoru wymaga przepisywanie tekstu ręcznie. Jednak zawsze przed napisaniem kodu warto ułożyć punktowy plan rozwiązania problemu. 

Zawsze w zadaniach biznesowych należy zobaczyć, co jest cechą wspólną dla poszczególnych rozwiązań.

W tym przypadku proszę zauważyć, że imię i nazwisko pisane są wielkimi literami. I to jest nasze rozwiązanie

Funkcja ACS

Zanim przejdziemy do zapisania rozwiązania, to warto zapoznać się z funkcją Asc. Funkcja ta przyjmuje jako argument ciąg znaków i dla pierwszej litery tego ciągu wskazuje, jaki jest jej odpowiednik w tzw. kodzie ASCII

Dla litery A odpowiednikiem jest liczba 65. Liczby dla innych liter można zobaczyć na stronie internetowej Microsoft

Jak rozdzielić imię i nazwisko? – praktyczna funkcja Excel

Dzięki tej informacji możemy napisać funkcję, która będzie wyłączała imię z połączonego tekstu imienia i nazwiska:

rys 2

Pętla For w VBA

Funkcja pobierz_imie pobiera jeden argument w postaci ciągu znaków (typ String) oraz zwraca ciąg znaków. Linie Dim mają na celu zadeklarowanie zmiennych. Pętla For ma na celu przejście przez każdą literę w słowie, którą przekaże użytkownik (imienazwisko). Zmienna litera pobiera tylko jeden znak argumentu. Zmienna kod_ascii zamienia pobraną literę na odpowiednią liczbę w tablicy ASCII (patrz wyżej). 

Instrukcja warunkowa If  i jej użycie w rozwiązaniu problemu 

Przy pomocy instrukcji warunkowej If następuje sprawdzenie, czy podana litera występuje w alfabecie anglosaskim (od A do Z) oraz czy jest wielka.

Jeśli spełnione są warunki w instrukcji If, to następuje zapamiętanie pozycji tej litery oraz wyjście z pętli. Na koniec, jeśli znaleziono pozycję dużej litery, to wycinany jest odpowiedni fragment tekstu przy pomocy funkcji tekstowej Mid. Analogicznie działa funkcja pobierz_nazwisko, której kod został przedstawiony poniżej:

rys 3

Licencja Creative Commons
Czary mary z ASCII oraz VBA by Cognity is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne 4.0 Międzynarodowe License.

Wybrani Klienci:

Ten serwis używa plików cookies. Brak zmiany ustawień przeglądarki oznacza zgodę na ich używanie.
Więcej informacji o plikach cookies znajdziesz tutaj
Kliknij ZGADZAM SIĘ, aby ta informacja nie wyświetlała się ponownie
Cognity.pl