|
![]() |
#1 |
Premium
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 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! |
![]() |
![]() |
![]() |
#2 |
Premium
Datum registracije: Aug 2007
Lokacija: Samobor, HR
Postovi: 1,604
|
Nitko ne zna? ![]() |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 |
Moderator
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. |
![]() |
![]() |
![]() |
#4 |
Premium
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. |
![]() |
![]() |
![]() |
#6 |
Moderator
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. |
![]() |
![]() |
![]() |
#7 |
Premium
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 ![]() ![]() |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
|
|