IZBORNIK HOME FORUM ACCESS EXCEL WORD  
 

HOME

   

3

Naredbe

3.1.1 IF naredba
3.1.2 SELECT CASE naredba
3.1.3 GoTo naredba
   
3.2

LOOP - Petlje

3.2.1 For-Next petlja
3.2.2 Do While petlja
3.2.3 Do Until petlja
3.3

Niz, String, Function

3.3.1 Nizovi
3.3.2 Stringovi
3.3.3 Rad sa slovima č, ć, š, đ, ž
3.3.4 Like operator
3.3.5 Funkcija Format
3.3.6 Predefinirani Formati za Datum i Vrijeme
3.3.7 Numerički formati
3.3.8 Korisnički Formati za Datum i Vrijeme
   
 

MICROSOFT EXCEL 2003 - VBE i VBA - Nizovi, Stringovi, Funkcija format, datum i vrijeme u VBA - Kodne stranice

Niz, String, Function format u VBA za Excel

Search This Web Site

Adsense sponzor






RAD SA STRINGOVIMA u VBA - Kontrola toka programa u VBA

Za bolje razumijevanje dijela ovog tutorijala prije čitanja pogledajte link KODNE STRANICE i uočite kodne brojeve za određeni znak, pogotovo za naša slova (Č, Ć, Ž, Š, Đ)

Pored numeričkih podataka, Excel vrlo često radi sa stringovima i posjeduje veliki broj funkcija za njihovu obradu. VBA također posjeduje veliki broj korisnih funkcija za obradu stringova. Već smo vidjeli da VBA može da radi stringovima fiksne i promjenjive dužine. Ukoliko se u deklariranju stringa navede i njegova dužina, dobivamo string fiksne dužine. U suprotnom, ako se ne navede dužina, dobivamo string promjenjive dužine. Uočite primjer deklariranja stringa fiksne dužine S1, koji ima 40 znakova, i stringa S2 promjenjive dužine.

Dim S1 as String * 40
Dim S2 as String

U tablici ispod prikazan je spisak korisnih funkcija za manipuliranje stringovima u VBA.

 
FUNKCIJA OPIS
Asc(string) Vraća ANSI kod prvog znaka u stringu "string".
Npr: Asc("A12") vraća broj 65. (broj u kodnoj stranici 1250-Latin)
AscW(string) Vraća Unicode kod prvog znaka u stringu "string"
Npr: AscW("Žarko") vraća broj 381. (broj u kodnoj stranici 1250-Latin)
Chr(kodznak) Vraća znak koji odgovara ANSI kodu "kodznak".
Npr: Chr(65) vraća znak "A". (znak u kodnoj stranici 1250-Latin kojem odgovara broj)
ChrW(kodznak) Vraća znak koji odgovara Unicode kodu "kodznak"
Npr: ChrW(382) vraća znak "ž". (znak u kodnoj stranici 1250-Latin kojem odgovara broj)
Len(string) Vraća broj znaka u stringu "string".
Npr: Len("žabac&komarac") vraća broj 13. (broj znakova između navodnika)
Str(broj) Konvertira broj "broj" u string.
Npr: Str(412.41) vraća string "412.41".
Val(string) Vraća broj sadržan u stringu "string". Čitanje broja započinje s lijeva i završava se kad se naiđe na prvi brojevni znak. Funkcija Val prepoznaje točku kao decimalni separator, ali ne i zarez, ignorira tab znakove i blanko znake.
Npr:
Val("301*44") vraća broj 301.
Val("301.1*44") vraća broj 301.1
Val("301..1*44") vraća broj 301
InStr(string1,string2) Vraća poziciju prve pojave stringa "string1" u stringu "string2".
LCase(string) Vraća string kod koga su sva velika slova konvertirana u mala, a ostali znaci su neizmijenjeni.
Npr: LCase("#A1G2") vraća "#a1g2"
UCase(string) Vraća string kod koga su sva mala slova konvertirana u velika, a ostali znaci su neizmijenjeni.
Npr: UCase("*b1c2") vraća "*B1C2"
Left(string,duzina) Vraća string koji se sastoji od duzina znaka stringa "string" gledano sa lijeva.
Npr: Left("Dobar dan",4) vraća "Doba"
Right(string,duzina) Vraća string koji se sastoji od "duzina" znaka stringa "string" gledano sa desna.
Npr: Right("Dobar dan",4) vraća " dan"
Mid(string,start,duzina) Vraća string koji se sastoji od "duzina" znaka stringa "string" počevši od znaka čija je pozicija start.
"duzina" je opcionalan argument i ako se ne navede ide se do kraja stringa.
Npr:
Mid("Program",2,4) vraća "rogr"
Mid("Program",2) vraća "rogram"
LTrim(string) Eliminira razmake (blanko znake) kojima počinje string "string".
Npr: LTrim(" Makro") vraća "Makro"
RTrim(string) Eliminira razmake (blanko znake) kojima se završava string "string"
Npr: LTrim("Makro ") vraća "Makro"
Trim(string) Eliminira razmake (blanko znake) kojima počinje i završava string "string"
Npr: Trim(" Makro ") vraća "Makro"
StrComp(string1,string2,nacin) Uspoređuje stringove "string1" i "string2" i vraća 0 ako su jednaki, -1 ako je "string1" manji od "string2" i 1 ako je "string2" manji od "string1" .
"nacin" predstavlja način usporedbe stringova i može biti binaran (nacin=0 =≫ pravi se razlika između velikih i malih slova) i tekstualan (nacin=1 =≫ ne pravi se razlika između velikih i malih slova). Ako se "nacin" ne navede, podrazumijevano je binarna usporedba.
Npr:
StrComp("VBA","vba",0) vraća -1
StrComp("VBA","vba",1) vraća 0

Za sve gore spomenute funkcije koje vraćaju "string", vraćeni "string" je tipa Variant. Ukoliko želimo da string bude tipa "String", potrebno je na ime funkcije nadovezati znak $. Tako će, na primjer, ekvivalent funkcije Lcase koji vraća String tip biti Lcase$.

Za očekivati je da se, pošto string u suštini predstavlja niz znakova, pojedinim znacima stringa može pristupiti navođenjem pozicije znaka u malim zagradama, kao što se radi kod brojevnih (numeričkih) nizova. Međutim, kod VBA to nije slučaj. Pristupanje znacima stringa, kao i njihova izmena, se vrši funkcijom Mid, kao što je prikazano u prethodnoj tablici.

Na primjer, uputom

Mid(S,1,3) = "123"

bi se zamijenila prva tri znaka stringa S sa stringom "123".

Osim sa funkcijom StrComp, stringovi se mogu usporediti i operatorom ispitivanja jednakosti "=".
Ovaj operator vrši binarnu usporedbu. To je podrazumijevani način usporedbe stringova sa ovim operatorom, kao što je kod funkcije StrComp. Podrazumijevani način usporedbe stringova može se promijeniti ako se na vrhu modula navede

Option Compare Text

čime podrazumijevani način postaje tekstualni. Brisanjem ovog iskaza ili pomoću

Option Compare Binary

podrazumijevani način opet postaje binarni.

VBA dozvoljava vrlo jednostavno nadovezivanje (konkatenaciju) stringova korištenjem operatora + ili &. Tako će izraz

S = "Black" + "White"

rezultirati u stringu "BlackWhite". Treba biti oprezan kada se radi sa Variant varijablama jer Variant podaci mijenjaju tip u zavisnosti od toga što radimo sa njima. Uzmimo, na primjer, string S u koji je upisan string "105" i promotrimo slijedeće dvije VBA upute:

S = 2 * S S = S + S

Nakon prve upute S bi imao brojevnu (numeričku) vrijednost 210 (2*105), a nakon druge upute S bi bio string "105105" (105&105). Pri radu sa stringovima, operator + uvijek vrši nadovezivanje. Međutim, ako radite sa Variant varijablom u koju je prvobitno upisan string, a nakon toga se promijeni tip podatka, operator + više neće vršiti nadovezivanje.
 



Pogledajte i link KODNE STRANICE na kojem možete pogledati razne kodne brojeve za određene znakove (znake)
(primjer uz dozvolu prenesen iz materijala sa predavanja prof. S.Đukanović)
 
Kodna stranica 1250 Latin

Adsense sponzor




Adsense sponzor



Ova web stranica koristi COOKIES - COPYRIGHT - 2011-2017 - IvanC - ic.ims.hr