Hỗ trợ VBA trong OpenOffice.Org Calc
Được đăng trên 21. Oct, 2009 bởi Krishnan Kỹ thuật , thế nào , OpenOffice.org , Mẹo
Trong nhiều năm cho đến ngày hôm qua, tôi biết về OpenOffice.Org Calc. Hôm nay, tôi vui mừng về nó.
Tôi đã thử OpenOffice nhiều năm trước đây. Nó có thể làm vài điều trở lại sau đó, nhưng tôi ngay lập tức bác bỏ như là không đủ cho nhu cầu của tôi. Tôi đã luôn luôn là một fan hâm mộ của VBA có thể làm cho Excel.
Tuần trước, tôi đã hoàn thành phần phức tạp nhất của ứng dụng VBA tôi từng viết. Tôi là một newbie VBA và nó đã cho tôi một tuần để hoàn thành mã của tôi mà có thể được in trên 28 trang A4. Bảng tính cho đến ngày tôi làm việc hoàn hảo trên XP / Office 2003 như là nghĩa vụ phải, nhưng tôi đã viết hầu hết các mã của tôi trong Vista / Office 2007.
Khi tôi nâng cấp lên Debian Bóp, Openoffice.org 3.1.1 đi kèm với nó. Tôi đã kiểm tra ra các phiên bản mới và đã rất ấn tượng rằng ta có thể viết macro trong Python, Javascript, BeanShell để BASIC.
Tôi cố gắng để mở phần phức tạp nhất của VBA đang trong Openoffice.org và tôi đã bắn phá với hàng trăm các thông báo lỗi lặp đi lặp lại rằng tôi đã để diệt các bảng tính từ dòng lệnh. Tôi đã bị thuyết phục rằng VBA và OOoCalc là không tương thích, cho đến khi tôi phát hiện ra trang web này do tai nạn khi cố gắng tìm hiểu để viết Javascript Macros trong OOo.
OK. Tất cả những gì tôi cần thiết để thêm "Tùy chọn VBA Hỗ trợ 1". Điều đó đã không âm thanh quá khó khăn, vì vậy tôi đã cố gắng mở bảng tính của mình một lần nữa và đã một lần nữa giết chết tất cả mọi thứ từ dòng lệnh.
Một số điều là không phải và tôi đã không thể chạy VBA mặc dù khả năng tương thích hứa.
Vì vậy, tôi quyết định đi chậm. Không có vấn đề bao nhiêu lần, tôi không thể chạy macro khi mở file excel bản địa. Vì vậy, tôi quyết định để mở file excel với các macro bị vô hiệu hóa. Cho phép tôi mở bảng tính, nhưng không được làm việc. Tôi thấy rằng OOoCalc tự động đã được thêm vào "Tùy chọn VBA Hỗ trợ 1" cho mô-đun của tôi.
Tôi đã lưu các tập tin như. ODS và tiến hành gỡ lỗi bằng cách cho phép các macro lại. Thời gian này, các lỗi đã không đến trong flood.They đến một lúc và nó đã được dễ dàng hơn để gỡ lỗi.
Tập đầu tiên của các lỗi liên quan đến biến mà không có một tuyên bố rõ ràng Dim. VBA trong Excel có vẻ dễ dãi hơn trong việc xử lý varaibles mà không có báo cáo thích hợp Dim. Tuy nhiên, OOo Calc không thích nó. Vì vậy, tôi đã kết thúc thêm một vài báo cáo Dim cho một số biến.
Các tập tiếp theo của lỗi với Excel tên UDF. OOo Calc thích để xem các chức năng được gọi với chữ hoa. Vì vậy, nếu bạn muốn sử dụng chữ thường trong Excel, họ sẽ hiển thị như là lỗi. Điều này có thể dễ dàng cố định bằng cách sử dụng tính năng tìm và thay thế.
Chỉ với hai điều này, cố định mới ODS tập tin của tôi làm việc hoàn hảo. Sau đó tôi lưu nó như là xls và lại mở xls và tất cả mọi thứ đã được làm việc. Mặc dù tài liệu OOo Calc vẫn nói rằng không phải tất cả các tính năng VBA được hỗ trợ, VBA chạy tốt trên OOoCalc cho tất cả các tính toán kỹ thuật thực tế. Vì vậy, bây giờ là thời gian cho tôi để làm cho việc chuyển đổi.
Bây giờ nếu bạn có khó khăn, nhận được mã VBA của bạn để làm việc trong OOo Calc, không cung cấp cho sớm.

Liên quan đến bài viết:


















































Rakesh
07. Nov, 2009
Hi,
Tôi đã cố gắng làm những gì u đã đề cập, nhưng vẫn còn nó không làm việc.
nếu SHEET1.CELLS (7, 4) = "" Hoặc SHEET1.CELLS (9, 4) = "" Hoặc SHEET1.CELLS (10, 4) = ""
Trong dòng này tôi đang được nhận tài sản hoặc phương pháp không tìm thấy.
Krishnan
09. Nov, 2009
Cú pháp rõ ràng là không chính xác như tôi có thể nhìn thấy.
Sau đó, nếu thư khac là những từ khóa được sử dụng. Không Or.
james
07. Feb, 2010
ingnoring "REMS"
làm thế nào bạn sẽ phải điều này trong OOo? tôi không thể làm việc ra OOo - xin cho tôi bắt đầu?
Rem Sub Words ()
Rem "
Rem 'vĩ mô từ
Rem 'Macro ghi 2010/07/02 bởi chủ sở hữu
Rem "
Rem 'bàn phím tắt: Ctrl + w
Rem "
Rem Dim NumWords Như Integer
Rem Dim WordLength Như Integer
Rem Dim Count As Integer
Rem Dim Count2 Như Integer
Rem Dim LCase Như Integer
Rem
Rem Dim Lời As String
Rem Dim MixedWord As String
Thư Rem Dim As String
Rem
Rem Worksheets ("từ"). Kích hoạt
Rem
Rem wordRange Set = Worksheets ("Words") Range ("A1: A500").
Rem NumWords = Application.WorksheetFunction.CountA (wordRange)
Rem
Rem Đối với Count = 1 Để NumWords
Rem WordLength = Len (Cells (Count, 1))
Rem
Rem
Rem 'Application.EnableSound = False
Rem
= True 'Application.EnableSound Rem
Rem Lời = Cells (Count, 1)
Rem Cells (Count, 1). Kích hoạt
Các Rem 'ActiveCell.Characters (1, 3) PhoneticCharacters = Lời
Rem MixedWord = ""
Rem Đối với Count2 = 1 WordLength
Rem Thư = Mid (Cells (Count, 1), Count2, 1)
Rem Application.Speech.Speak (Thư)
Rem LCase = Round (Rnd)
Rem
Rem
Rem Nếu LCase = 1 Asc (Letter)> = 97 Sau đó, Thư = Chr (Asc (Letter) - 32)
Rem
Rem MixedWord = MixedWord + Thư
Rem Tiếp theo Count2
Rem Cells (1, 5) = MixedWord
Rem
Rem Dim Message, Tiêu đề, Default, myValue
Rem tin nhắn = "Sẵn sàng khỉ?"
Rem Title = "Danh dự trò chơi chính tả."
Rem Mặc định = "YES"
Rem myValue = InputBox (Message, Tiêu đề, Default)
Rem
Rem
Rem Đối với Count2 = 1 WordLength
Rem Thư = Mid (Cells (Count, 1), Count2, 1)
Rem Application.Speech.Speak (Thư)
Rem Tiếp theo Count2
Rem Application.Speech.Speak (Word)
Rem
Rem Nếu myValue "YES" Sau đó,
Rem Application.Speech.Speak ("Đó là sai pooey - bạn đã nhập)
Rem WordLength = Len (myValue)
Rem Đối với Count2 = 1 WordLength
Rem Thư = Mid (myValue, Count2, 1)
Rem Application.Speech.Speak (Thư)
Rem Tiếp theo Count2
Rem Application.Speech.Speak (myValue)
Rem End If
Rem
Rem
Rem Tiếp theo Lượt
Rem
Rem
Rem End Sub
Rem