Καλησπέρα Μανώλη και καλό μήνα!
Θα σου δώσω μια γενικότερη πληροφορία/απάντηση αφού το φόρουμ δεν υποστηρίζει άλλες
εφαρμογές υπολογιστικών φύλλων εκτός από τη Microsoft Excel.
Για να εκτελεστούν μακροεντολές
VBA στην εφαρμογή
Calc ( και γενικότερα στο OpenOffice )
και θα χρειαστεί η εκάστοτε εφαρμογή να τεθεί σε λειτουργία συμβατότητας
VBA.
Αυτό επιτυγχάνεται με την τοποθέτηση της παρακάτω γραμμής στην κορυφή της λειτουργικής
μονάδας
VBASupport Option 1
πχ.:
Κώδικας:
REM ***** BASIC *****
Option VBASupport 1
Sub Main
Dim rng As Range
Set rng = ActiveWorkbook.WorkSheets("Sheet1").Range("A1:B30")
MsgBox rng.Address
End Sub
Σημείωση: Το
Οbject Μodel του Calc διαφέρει σε πολλά σημεία από το
Οbject Μodel της Microsoft Excel
που σημαίνει ότι ακόμα και σε λειτουργία συμβατότητας
VBA, αναλόγως τα περιεχόμενα του
κώδικα (κυρίως αναφορές σε Αντικείμενα Excel), θα παρουσιαστούν προβλήματα!
Edit:
Αναφέρομαι στις μακροεντολές του συνημμένου σου.
γράφεις:
Κώδικας:
.......
Range("F6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=NOW()"
Range("F6").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
........
Μη χρησιμοποιείς Select και Copy δεν είναι απαραίτητο και προκαλεί "τρέμουλο" στην οθόνη.
Μπορείς να απλοποιήσεις τη μακροεντολή αυτή ....αρκεί να πεις στην
VBA τι θέλεις να κάνεις....
Θα μπορούσες δηλαδή να χρησιμοποιήσεις:
Range("F6").Value = Now Επίσης: Κώδικας:
Range("G10").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,"" "",RC[-1]-RC[-4])*RC[-1]-RC[-4]"
Θα μπορούσες να χρησιμοποιήσεις:
Range("G10").FormulaR1C1 = "=IF(RC[-1]=0,"" "",RC[-1]-RC[-4])*RC[-1]-RC[-4]"
Καλή συνέχεια!
Φιλικά
Τάσος