Nije ništa neobično da program ne radi onako kako smo zamislili. Kod komplikovanih programa pre bih rekao da je to pravilo – ukoliko program „iz prve“ radi kako treba to je dosta sumnjivo.
Zato je za ozbiljno programiranje neophodno korišćenje debagera („debug“). Osnovno je da pre izvršavanja programa:
1- Da uključiš Immediate Window u VB editoru (CTRL +G)
2- Označiš liniju na kojoj će se zaustaviti izvršavanje – breakpoint. To treba da bude na liniji koda za koju sumnjaš da ti pravi probleme. Npr. kod tebe:
If Not Col Is Nothing Then. Označavanje ćeš izvršiti tako što klikneš na sivu liniju pored odgovarajuće linije – pojaviće se crvena tačka.
Sada startuješ izvršavanje programa sa opcijama koje dovode do greške. Program će se zaustaviti na označenoj liniji. Sada u Immediate window proveriš vrednost promenljive/izraza koji pravi problem. Jednostavno kucaš ?Izraz. U primeru koji si ti naveo:
?Col
Daje vrednost 105 i sad uočavaš u čemu je problem. 10 je „našao“ u vrednosti ćelije 105. Problem je što u Find metodi nisi zadao parametar LookAt da gleda celu ćeliju. Dakle, treba:
Code:
Set Col = NumFc.Find(TextBox2.Value, LookAt:=xlWhole)
Ukoliko si ovo znao, izvini na ovako opširnom objašnjenju jednostavne greške, ali vidim da se dosta baviš programiranjem, po reko bolje da te naučim da pecaš... Opširnija obaveštenja o debbgovanju naći ćeš na net-u.
Nije to loše Rembrante, samo što ne bi dodao još malo boje?