PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   Prebacivanje MS VBA u OpenOffice (https://forum.pcekspert.com/showthread.php?t=208612)

FitzTN 29.01.2011. 15:19

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 31.01.2011. 12:14

Nitko ne zna? :(

Nikky 31.01.2011. 14:49

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.

FitzTN 31.01.2011. 15:08

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 31.01.2011. 15:25

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 :)

Nikky 31.01.2011. 15:33

Pa doradi kontrolu kad "kad nije ništa upisano" (pretpostavljam tretira se kao NULL) postavi da vraća vrijednost 0.

FitzTN 31.01.2011. 16:06

A probao sam sve sa NULL i to i ispada da kad nije ništa upisano uzima da je a=448 :D tako da je i to rješeno :)


Sva vremena su GMT +2. Sada je 05:54.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger