สนับสนุน 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, นอกเหนือไปจากขั้นพื้นฐาน
ฉันพยายามที่จะเปิดชิ้นส่วนที่ซับซ้อนที่สุดของฉันของรหัส VBA ใน 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 สำหรับทุกการคำนวณทางวิศวกรรมในทางปฏิบัติ ดังนั้นตอนนี้เป็นเวลาสำหรับผมที่จะทำให้สวิทช์
ตอนนี้ถ้าคุณมีปัญหาในการรับรหัส VBA ของคุณให้ทำงานใน OOo Calc, dont ให้ขึ้นเร็ว ๆ นี้

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


















































Rakesh
07 พฤศจิกายน, 2009
สวัสดีครับ
ฉันได้พยายามทำในสิ่งที่รักได้กล่าวถึง แต่ก็ยังไม่ได้ทำงาน
ถ้า SHEET1.CELLS (7, 4) = "" Or SHEET1.CELLS (9, 4) = "" Or SHEET1.CELLS (10, 4) = ""
ในบรรทัดนี้ฉันได้รับทรัพย์สินหรือวิธีการที่ไม่พบ
กฤษณะ
09 พฤศจิกายน, 2009
ไวยากรณ์ไม่ถูกต้องอย่างเห็นได้ชัดว่าฉันสามารถมองเห็น
ถ้าจากนั้น Else คำหลักที่จะใช้เป็น ไม่ได้หรือ
เจมส์
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