Tole kar govorite ne drži ravno saj razlike med funkcijo in formulo ni - no zelo zelo strogo strokovno gledano je, vendar za uporabnika nobene.
Predvsem pa se motite glede obsegov in podobnega... Tako opažam, da vas to zelo moti že skozi vsa vaša vprašanja. Stvar je skrajno preprosta. Če vnaprej veste, da se nekaj ne bo spreminjalo (da je torej konstanta), potem to pač "zapečete" v funkcijo. Če pa je podatek variabilen, pa ga ne zapečete v funkcijo temveč ga podate kot parameter.
Tudi glede povečevanja tabele je v Excelu vse lepo rešeno. Ko vi vnesete novo vrstico podatkov, pač lepo iz prejšnje vrstice skopirajte tudi formule in vse je OK. Večina uporabnikov pa delala ravno obratno (efekt je seveda isti). Formule vnaprej skopirajo npr. v prvih 5000 vrstic in ko vnašajo podatke, se jim formule avtomatično pravilno računajo. Svetujem vam, da si izposodite kakšno knjigo o Excelu, ker se vseskozi trudite, da bi ga uporabljali drugače, kot je namen njegove uporabe in tako skačete iz problema v problem, namesto, da bi vam Excel te probleme reševal.
In tudi numerološko seštevanje je povsem trivialen problem in formula nikakor ni maratonska ... Spodaj vam bom napisal VBA funkcijo, ki sprejme poljubno celo število in sešteva njegove cifre dokler ne dobi enomestnega števila.
Koda: Izberi vse
Function SestejCifre(Vhod As Long) As Long
If (Vhod < 0) Then
SestejCifre = 0
Exit Function
End If
If (Vhod < 10) Then
SestejCifre = Vhod
Exit Function
End If
Dim sestevek As Long
sestevek = 0
While (Vhod > 0)
sestevek = sestevek + Vhod Mod 10
Vhod = Vhod / 10
Wend
SestejCifre = SestejCifre(sestevek)
End Function
Torej ta funkcija vam sešteje cifre poljubnega celega števila (manjšega od 4 miliarde) in ne samo dvomestnega.
Da pa vam v tem sporočilu še enkrat dokažem, da so funkcije in formule enakovredne, naredite sledeče:
- Skopirajte funkcijo v VBA urejevalnik
- Pojdite nazaj v Excel in v celico A1 vpišite 44121
- V celico B1 vpišite formulo =sestejCifre(A1) in excel bo izpisal rezultat 3!
Res vam svetujem, da si najprej izposodite knjigo o Excelu (99% uporabnikov Excela nikoli ne potrebuje VBA-ja!)