VBA υποστήριξη OpenOffice.Org Calc

Καταχωρήθηκε στις 21. Οκτώβριο του 2009 από σε Μηχανική , Οδηγός , OpenOffice.org , Συμβουλές

Για πολλά χρόνια μέχρι χθες, ήξερα για OpenOffice.Org Calc. Σήμερα, είμαι ενθουσιασμένος γι 'αυτό.

Δοκίμασα το OpenOffice πριν από πολλά χρόνια. Θα μπορούσε να κάνει μερικά πράγματα τότε, αλλά εγώ αμέσως απέρριψε ως ανεπαρκή για τις ανάγκες μου. Πάντα ήμουν οπαδός του τι θα μπορούσε να κάνει VBA για το Excel.

Την περασμένη εβδομάδα, έχω ολοκληρώσει το πιο πολύπλοκο κομμάτι της εφαρμογής της VBA είχα γραφτεί ποτέ. Είμαι αρχάριος VBA και μου πήρε μία εβδομάδα για να τελειώσει τον κωδικό μου που θα μπορούσαν να τυπωθούν στις 28 σελίδες Α4. Υπολογιστικό φύλλο μου μέχρι σήμερα λειτουργεί άψογα στα XP / Office 2003, όπως υποτίθεται ότι, αλλά είχα γράψει τα περισσότερα από τον κωδικό μου στα Vista / Office 2007.

Όταν έκανα αναβάθμιση σε Πιέστε το Debian, Openoffice.org 3.1.1 ήρθε με αυτό. Έλεγξα τη νέα έκδοση και εντυπωσιάστηκε ότι θα μπορούσε κανείς να γράψει μακροεντολές σε Python, Javascript, BeanShell εκτός από τις βασικές.

Δοκίμασα να ανοίξω πιο πολύπλοκο κομμάτι μου κώδικα VBA σε Openoffice.org και εγώ βομβαρδίστηκε με εκατοντάδες επαναλαμβανόμενα μηνύματα λάθους που είχα για να σκοτώσει το υπολογιστικό φύλλο από τη γραμμή εντολών. Ήμουν πεπεισμένος ότι η VBA και OOoCalc δεν είναι συμβατά μεταξύ τους, μέχρι που ανακάλυψα αυτό το site από ατύχημα, όταν προσπαθούν να μάθουν να γράφουν την Javascript για Μακροεντολές στο OOo.

Εντάξει. Το μόνο που χρειάζεται να προσθέσω ήταν "επιλογή VBA στήριξης 1". Αυτό δεν ακούγεται και τόσο δύσκολο, και έτσι δοκίμασα το άνοιγμα των φύλλων μου και πάλι έπρεπε να σκοτώσει τα πάντα και πάλι από την γραμμή εντολών.

Κάτι δεν πήγαινε καλά και δεν ήμουν σε θέση να τρέξει VBA παρά την υπόσχεση συμβατότητα.

Έτσι αποφάσισα να πάω αργά. Δεν έχει σημασία πόσες φορές, δεν θα μπορούσα να εκτελέσετε τις μακροεντολές, όταν άνοιξα το εγγενές αρχείο excel. Έτσι αποφάσισα να ανοίξω το αρχείο Excel με μακροεντολές απενεργοποιούνται. Αυτό επιτρέψτε μου να ανοίξει το φύλλο, αλλά τίποτα δεν δούλευε. Βρήκα ότι OOoCalc αυτόματα είχε προσθέσει "Επιλογή VBA στήριξης 1" σε ενότητες μου.

Έχω αποθηκεύσει το αρχείο ως. ODS και προχώρησε για τον εντοπισμό σφαλμάτων, επιτρέποντας και πάλι τις μακροεντολές. Αυτή τη φορά, τα λάθη δεν έρχονται σε flood.They ήρθε ένα κάθε φορά και ήταν πιο εύκολο για τον εντοπισμό σφαλμάτων.

Η πρώτη σειρά των σφαλμάτων που σχετίζονται με τις μεταβλητές που δεν έχουν ρητή Dim. VBA στο Excel φάνηκε πιο επιεικής για τον χειρισμό varaibles χωρίς κατάλληλη Δημ. δηλώσεις. Αλλά το OOo Calc δεν αρέσει. Έτσι κατέληξα να προσθέσετε μερικές Δημ. δηλώσεις για ορισμένες μεταβλητές.

Η επόμενη σειρά των σφαλμάτων ήταν με το Excel ονόματα UDF. OOo Calc θέλει να δει Λειτουργίες επίκληση με κεφαλαία γράμματα. Έτσι, αν θέλετε χρησιμοποιείται πεζά γράμματα στο Excel, θα εμφανίζονται ως σφάλματα. Αυτό θα μπορούσε εύκολα να καθοριστεί με τη χρήση των βρείτε και να αντικαταστήσετε το χαρακτηριστικό.

Με μόνο αυτά τα δύο πράγματα, καθορίζεται νέο αρχείο. ΟΚΟ μου λειτούργησε τέλεια. Έσωσα τότε ως. Xls και άνοιξε ξανά τις. Xls και όλα ήταν εξακολουθεί να εργάζεται. Αν το OOo Calc έγγραφα εξακολουθεί να λέει ότι δεν υποστηρίζονται όλες οι δυνατότητες της VBA, VBA τρέχει πολύ καλά στους OOoCalc για όλες τις πρακτικές τους υπολογισμούς εφαρμοσμένης μηχανικής. Έτσι, τώρα είναι η ώρα για μένα να κάνουν το διακόπτη.

Τώρα, αν έχετε δυσκολίες, να πάρει τον κώδικα VBA σας να εργαστείτε στο OOo Calc, dont σταματήστε αμέσως.

Σχετικές θέσεις:

  1. Excel Howtos
  2. συνδέσεις για 06/30/2010

3 απαντήσεις σε "υποστήριξη VBA σε OpenOffice.Org Calc"

  1. Rakesh

    07. Νοέμβριος, 2009

    Γεια σου,
    Έχω προσπαθήσει να κάνει ό, τι u ανέφερα, αλλά ακόμα δεν λειτουργεί.
    αν SHEET1.CELLS (7, 4) = "" Ή SHEET1.CELLS (9, 4) = "" Ή SHEET1.CELLS (10, 4) = ""

    Σε αυτή τη γραμμή εγώ είμαι getting ιδιοκτησίας ή η μέθοδος δεν βρέθηκε.

  2. Krishnan

    09. Νοέμβριος, 2009

    Η σύνταξη είναι προφανώς λανθασμένη, όπως μπορώ να δω.

    Αν, λοιπόν, τα υπόλοιπα είναι οι λέξεις-κλειδιά που πρέπει να χρησιμοποιούνται. Δεν Or.

  3. james

    07. Φεβρουάριος, 2010

    ingnoring το "REMS"
    πώς θα δικαίωμα αυτό στο OOo; λοξοτομώ το έργο από το OOo - pls πάρτε ξεκίνησε;
    Rem λέξεις Sub ()
    "Rem
    Λέξεις Macro Rem '
    Μακροοικονομική Rem 'καταγράφονται από 07/02/2010 Ιδιοκτήτης
    "Rem
    Συντόμευση πληκτρολογίου Rem »: Ctrl + W
    "Rem
    Rem Δημ. NumWords As Integer
    Rem Δημ. WordLength As Integer
    Rem Δημ. Count As Integer
    Rem Δημ. Count2 As Integer
    Rem Δημ. LCase As Integer
    Rem
    Rem Δημ. Word ως String
    Rem Δημ. MixedWord As String
    Rem Δημ. Επιστολή As String
    Rem
    Φύλλα rem »(« Λόγια »). Ενεργοποίηση
    Rem
    Rem Σετ wordRange = φύλλα εργασίας ("Words") Πεδίο ("A1: A500").
    Rem NumWords = Application.WorksheetFunction.CountA (wordRange)
    Rem
    Rem για Count = 1 Για να NumWords
    Rem WordLength = Len (Κύτταρα (Κόμης, 1))
    Rem
    Rem
    Application.EnableSound Rem '= False
    Rem
    Application.EnableSound Rem '= True
    Rem το Word = Κύτταρα (Κόμης, 1)
    Κύτταρα rem »(Κόμης, 1). Ενεργοποίηση
    ActiveCell.Characters rem »(1, 3). PhoneticCharacters = το Word
    Rem MixedWord = ""
    Rem για Count2 = 1 Για να WordLength
    Rem Επιστολή = Mid (Κύτταρα (Κόμης, 1), Count2, 1)
    Application.Speech.Speak rem »(Επιστολή)
    Rem LCase = Γύρος (Rnd)
    Rem
    Rem
    Rem Αν LCase = 1 και ASC (Επιστολή)> = 97 = Τότε Επιστολή Χρ (Asc (Επιστολή) - 32)
    Rem
    Rem MixedWord = MixedWord + γράμμα
    Rem Επόμενη Count2
    Κύτταρα Rem (1, 5) = MixedWord
    Rem
    Rem Δημ. μηνύματος, τον τίτλο, Προεπιλογή, MyValue
    Μήνυμα Rem = "Έτοιμο μαϊμού;"
    Rem Τίτλος = "παιχνίδι ορθογραφία Honors".
    Rem Προεπιλογή = "ΝΑΙ"
    Rem MyValue = InputBox (Μήνυμα, Τίτλος, Προεπιλογή)
    Rem
    Rem
    Rem για Count2 = 1 Για να WordLength
    Rem Επιστολή = Mid (Κύτταρα (Κόμης, 1), Count2, 1)
    Rem Application.Speech.Speak (Επιστολή)
    Rem Επόμενη Count2
    Rem Application.Speech.Speak (Word)
    Rem
    Rem Αν MyValue "ΝΑΙ" Τότε
    Rem Application.Speech.Speak ("Αυτό είναι λάθος pooey - εισάγατε")
    Rem WordLength = Len (MyValue)
    Rem για Count2 = 1 Για να WordLength
    Rem Επιστολή = Mid (MyValue, Count2, 1)
    Rem Application.Speech.Speak (Επιστολή)
    Rem Επόμενη Count2
    Rem Application.Speech.Speak (MyValue)
    Τέλος Αν Rem
    Rem
    Rem
    Rem Επόμενη Count
    Rem
    Rem
    Rem End Sub
    Rem

Αφήστε μια απάντηση