Hỗ trợ VBA trong OpenOffice.Org Calc

Được đăng trên 21. Oct, 2009 bởi 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:

  1. Excel Thế Nào
  2. liên kết cho 2010/06/30

3 Responses to "hỗ trợ VBA trong OpenOffice.Org Calc"

  1. 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.

  2. 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.

  3. 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

Để lại một trả lời