Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 29.01.2011., 15:19   #1
FitzTN
Premium
Moj komp
 
FitzTN's Avatar
 
Datum registracije: Aug 2007
Lokacija: Samobor, HR
Postovi: 1,604
Prebacivanje MS VBA u OpenOffice

Bok, molio bi pomoc u prebacivanju dodatka za Excel isprogramiranog za MS Excel da ga mogu koristiti u OpenOffice-u. Dodatak nije nešto kompliciran, obične matematičke f-je, ali ja jednostavno nisam "na ti" sa (Visual) Basicom.

Evo primjer jedne funkcije:

Code:
Function funkcija1(a As Variant) As Variant
Pi = 4*ATN(1)
If a < 0 And a * 100 <> Int(a * 100) Then
    b = Int(a) + 1
    c = ((Int((a - b) * 100) + 1) / 60) * (-1)
    d = (((a - b) * 100 - (Int((a - b) * 100) + 1)) / 36) * (-1)
    funkcija1 = (-b + c + d) * (-1) * Pi / 180

...

End If
End Function
Compile prođe OK, ali na RUN Basic zaokruži ovaj red:
Pi = 4*ATN(1)
i kaže: Read Error. This property is read-only.

Zamijenim ja to sa:
Pi= PI()
i tada prođe sve OK s tim redom, ali sad stane na sljedećem:
If a < 0 And a * 100 <> Int(a * 100) Then
i kaže: BASIC runtime error. Argument is not optional.

U samom izvođenju ovog "macroa" ne javlja nikakvu grešku, ali je ponavlja svakim ulaskom u BASIC editor.
Pretpostavljam da ga zanima što će napisati ako a ne postoji, ali ne znam kako to rješiti.

Hvala!
FitzTN je offline   Reply With Quote
Staro 31.01.2011., 12:14   #2
FitzTN
Premium
Moj komp
 
FitzTN's Avatar
 
Datum registracije: Aug 2007
Lokacija: Samobor, HR
Postovi: 1,604
Nitko ne zna?
FitzTN je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 31.01.2011., 14:49   #3
Nikky
Moderator
 
Nikky's Avatar
 
Datum registracije: Sep 2006
Lokacija: St
Postovi: 23,456
Zna il ne zna, neda se narodu zafrkavat. Treba vidit razlike u interpretaciji funkcija, moguće da ovdje mora biti IF...THEN...ELSE tj. da ELSE nije opcionalni. Ovo je samo pretpostavka, može biti i nešto drugo. Treba ti netko sa OpenOffice za testiranje, ja ga ne koristim.
Nikky je offline   Reply With Quote
Staro 31.01.2011., 15:08   #4
FitzTN
Premium
Moj komp
 
FitzTN's Avatar
 
Datum registracije: Aug 2007
Lokacija: Samobor, HR
Postovi: 1,604
Ima If, ElseIf i na kraju Else. Jedino nije pokriven slučaj da a nije upisan, tj. error se javlja kad upišem komandu =funkcija1(), pa bi vjerujatno samo to trebalo pokriti.

Ako je to veći problem rješiti nema veze, i tako je sve isprogramirano da ne postoji mogućnost pojave toga da a nije upisan, samo sam želio da bude sve bez errora.
FitzTN je offline   Reply With Quote
Staro 31.01.2011., 15:25   #5
FitzTN
Premium
Moj komp
 
FitzTN's Avatar
 
Datum registracije: Aug 2007
Lokacija: Samobor, HR
Postovi: 1,604
Ovo je "riješilo" problem:

Function funkcija1(Optional a As Variant) As Variant

Doduše, sad kad nije ništa upisano ( funkcija1() ) baca kao rezultat neku nebulozu, ali barem nema greške
FitzTN je offline   Reply With Quote
Staro 31.01.2011., 15:33   #6
Nikky
Moderator
 
Nikky's Avatar
 
Datum registracije: Sep 2006
Lokacija: St
Postovi: 23,456
Pa doradi kontrolu kad "kad nije ništa upisano" (pretpostavljam tretira se kao NULL) postavi da vraća vrijednost 0.
Nikky je offline   Reply With Quote
Staro 31.01.2011., 16:06   #7
FitzTN
Premium
Moj komp
 
FitzTN's Avatar
 
Datum registracije: Aug 2007
Lokacija: Samobor, HR
Postovi: 1,604
A probao sam sve sa NULL i to i ispada da kad nije ništa upisano uzima da je a=448 tako da je i to rješeno
FitzTN je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na