สนับสนุน VBA ใน OpenOffice.Org Calc

โพสต์เมื่อวันที่ 21 ตุลาคม 2009 โดย ใน วิศวกรรม , Howto , OpenOffice.org , เคล็ดลับ

เป็นเวลาหลายปีจนถึงเมื่อวานนี้ผมรู้เกี่ยวกับ OpenOffice.Org Calc วันนี้ผมตื่นเต้นกับมัน

ฉันพยายาม OpenOffice เป็นเวลาหลายปีที่ผ่านมา มันสามารถทำบางสิ่งกลับมาแล้ว แต่ฉันทันทีไล่ออกเป็นไม่เพียงพอสำหรับความต้องการของฉัน ฉันได้รับเสมอแฟนของสิ่งที่จะทำ VBA สำหรับ Excel

สัปดาห์ที่แล้วผมเสร็จชิ้นที่ซับซ้อนที่สุดของแอพลิเคชัน VBA ผมเคยเขียน ผมน้องใหม่ VBA และจะเอาฉันในสัปดาห์ที่จะเสร็จสิ้นรหัสของฉันที่สามารถพิมพ์บนกระดาษ A4 28 หน้า สเปรดชีทของฉันจนถึงวันที่ทำงานไม่มีที่ติบน XP / Office 2003 เช่นที่มันควรจะได้ แต่ที่ผมเขียนส่วนใหญ่ของรหัสของฉันใน Vista / Office 2007

เมื่อผมปรับให้บีบ Debian, Openoffice.org 3.1.1 มาพร้อมกับมัน ฉันจะตรวจสอบที่ออกรุ่นใหม่และประทับใจที่หนึ่งสามารถเขียนแมโครใน BeanShell Python, Javascript, นอกเหนือไปจากขั้นพื้นฐาน

ฉันพยายามที่จะเปิดชิ้นส่วนที่ซับซ้อนที่สุดของฉันของรหัส VB​​A ใน Openoffice.org และฉันถูกถล่มด้วยหลายร้อยข้อความผิดพลาดซ้ำ ๆ ที่ฉันมีที่จะฆ่าสเปรดชีทจากบรรทัดคำสั่ง ผมเชื่อมั่นว่า VBA และ OOoCalc เข้ากันไม่ได้จนผมค้นพบ นี้ เว็บไซต์โดยอุบัติเหตุเมื่อพยายามที่จะเรียนรู้การเขียนแมโคร Javascript ใน OOo

ตกลง ทั้งหมดที่ฉันต้องการเพื่อเพิ่มความเป็น "ตัวเลือกการสนับสนุน VBA 1" ที่ไม่ได้ฟังยากเกินไปดังนั้นฉันพยายามเปิดสเปรดชีตของฉันอีกครั้งและอีกครั้งมีการฆ่าทุกอย่างจากบรรทัดคำสั่ง

สิ่งบางอย่างไม่ถูกต้องและผมจะไม่สามารถทำงานเข้ากันได้แม้จะ VBA สัญญา

ดังนั้นผมจึงตัดสินใจที่จะไปช้า ไม่ว่ากี่ครั้งฉันไม่สามารถเรียกใช้แมโครเมื่อผมเปิดไฟล์ excel พื้นเมืองไม่มี ดังนั้นผมจึงตัดสินใจที่จะเปิดไฟล์ Excel ที่มีแมโครถูกปิดใช้งาน ที่ให้ฉันเปิดกระดาษคำนวณ แต่ไม่มีอะไรได้ทำงาน ฉันพบว่า OOoCalc โดยอัตโนมัติได้เพิ่ม "ตัวเลือกการสนับสนุน VBA 1" ถึงโมดูลของฉัน

ฉันบันทึกแฟ้มเป็น. ODS และดำเนินการแก้ปัญหาโดยการใช้แมโครอีกครั้ง คราวนี้ข้อผิดพลาดที่ไม่ได้มาใน flood.They มาหนึ่งครั้งและมันก็ง่ายที่จะแก้ปัญหา

ชุดแรกของความผิดพลาดที่เกี่ยวข้องกับตัวแปรที่ไม่ได้มีคำสั่ง Dim ชัดเจน VBA ใน Excel ลำบากมากขึ้นในการจัดการอภัยโทษโดยไม่ต้อง varaibles งบมซำที่เหมาะสม แต่ OOo Calc ไม่ชอบเลย ดังนั้นผมจึงจบลงด้วยการเพิ่มงบมซำน้อยสำหรับตัวแปรบางอย่าง

ชุดต่อไปของข้อผิดพลาดคือมีชื่อของ Excel UDF OOo Calc ชอบที่จะเห็นฟังก์ชั่นถูกเรียกด้วยตัวอักษรตัวพิมพ์ใหญ่ ดังนั้นถ้าคุณต้องการใช้ตัวอักษรกรณีที่ต่ำกว่าใน Excel พวกเขาก็จะแสดงขึ้นมาเป็นข้อผิดพลาด นี้สามารถแก้ไขได้อย่างง่ายดายโดยใช้การค้นหาและแทนที่คุณลักษณะ

มีเพียงสองสิ่งเหล่านี้คงใหม่. ของฉันไฟล์ ODS ทำงานอย่างสมบูรณ์ ฉันแล้วบันทึกไว้เป็น. xls และ re-เปิด xls. และทุกอย่างยังคงทำงาน แม้ว่าเอกสาร OOo Calc ยังคงบอกว่าไม่ทุกคุณลักษณะของ VBA ได้รับการสนับสนุน VBA ทำงานได้ดีบน OOoCalc สำหรับทุกการคำนวณทางวิศวกรรมในทางปฏิบัติ ดังนั้นตอนนี้เป็นเวลาสำหรับผมที่จะทำให้สวิทช์

ตอนนี้ถ้าคุณมีปัญหาในการรับรหัส VB​​A ของคุณให้ทำงานใน OOo Calc, dont ให้ขึ้นเร็ว ๆ นี้

โพสต์ที่เกี่ยวข้อง:

  1. แห่ง Excel
  2. การเชื่อมโยงสำหรับ 2010-06-30

3 Responses to "สนับสนุน VBA ใน OpenOffice.Org Calc"

  1. Rakesh

    07 พฤศจิกายน, 2009

    สวัสดีครับ
    ฉันได้พยายามทำในสิ่งที่รักได้กล่าวถึง แต่ก็ยังไม่ได้ทำงาน
    ถ้า SHEET1.CELLS (7, 4) = "" Or SHEET1.CELLS (9, 4) = "" Or SHEET1.CELLS (10, 4) = ""

    ในบรรทัดนี้ฉันได้รับทรัพย์สินหรือวิธีการที่ไม่พบ

  2. กฤษณะ

    09 พฤศจิกายน, 2009

    ไวยากรณ์ไม่ถูกต้องอย่างเห็นได้ชัดว่าฉันสามารถมองเห็น

    ถ้าจากนั้น Else คำหลักที่จะใช้เป็น ไม่ได้หรือ

  3. เจมส์

    07 กุมภาพันธ์, 2010

    ingnoring "Rems"
    ที่คุณจะวิธีที่ถูกต้องนี้ใน OOo? ผมทำงานลาดเทออก OOo - pls รับฉันเริ่มต้น?
    คำ Rem ย่อย ()
    'Rem
    แมโครคำ Rem '
    แมโคร Rem 'บันทึก 2010/07/02 โดยเจ้าของกิจการ
    'Rem
    แป้นพิมพ์ลัด Rem ': Ctrl + W
    'Rem
    Rem มซำ NumWords As Integer
    Rem WordLength มซำเป็นจำนวนเต็ม
    Rem Count มซำเป็นจำนวนเต็ม
    Rem มซำ Count2 As Integer
    Rem มซำ LCase As Integer
    Rem
    Rem คำ Dim As String
    Rem มซำ MixedWord As String
    Rem จดหมาย Dim As String
    Rem
    แผ่น Rem '("คำ"). เปิดใช้งาน
    Rem
    Rem ชุด wordRange = แผ่น ("คำ") Range ("A1: A500").
    Rem NumWords = Application.WorksheetFunction.CountA (wordRange)
    Rem
    Rem สำหรับการนับ = 1 To NumWords
    Rem WordLength = Len (Cells (Count, 1))
    Rem
    Rem
    Rem 'Application.EnableSound = False
    Rem
    Rem 'ทรู Application.EnableSound =
    Rem เซลล์ = Word (Count, 1)
    เซลล์ Rem '(Count, 1). เปิดใช้งาน
    ActiveCell.Characters Rem '(1, 3). PhoneticCharacters คำ =
    Rem MixedWord = ""
    Rem สำหรับ Count2 = 1 To WordLength
    Rem Letter = Mid (Cells (Count, 1), Count2, 1)
    Rem 'Application.Speech.Speak (Letter)
    Rem LCase = กลม (Rnd)
    Rem
    Rem
    Rem หาก LCase = 1 และ Asc (Letter)> = 97 จากนั้น Letter = Chr (Asc (Letter) - 32)
    Rem
    Rem MixedWord = MixedWord + Letter
    Count2 Rem ถัดไป
    เซลล์ Rem (1, 5) = MixedWord
    Rem
    Rem ข้อความมซำ, หัวข้อ, เริ่มต้น, MyValue
    Rem ข้อความ = "Monkey Ready?"
    Rem Title = "เกมการสะกดเกียรตินิยม."
    Rem default = "YES"
    Rem MyValue = InputBox (ข้อความ, ชื่อเริ่มต้น)
    Rem
    Rem
    Rem สำหรับ Count2 = 1 To WordLength
    Rem Letter = Mid (Cells (Count, 1), Count2, 1)
    Rem Application.Speech.Speak (Letter)
    Count2 Rem ถัดไป
    Rem Application.Speech.Speak (Word)
    Rem
    Rem หาก MyValue "YES" จากนั้น
    Rem Application.Speech.Speak ("นั่น pooey ผิด - คุณป้อน")
    Rem WordLength = Len (MyValue)
    Rem สำหรับ Count2 = 1 To WordLength
    Rem Letter = Mid (MyValue, Count2, 1)
    Rem Application.Speech.Speak (Letter)
    Count2 Rem ถัดไป
    Rem Application.Speech.Speak (MyValue)
    End Rem หาก
    Rem
    Rem
    Rem นับถัดไป
    Rem
    Rem
    Rem Sub End
    Rem

ปล่อยให้ตอบ