2016-02-06 17 views
-1

我對我在找什麼有一個簡單的想法,但我不知道如何清楚地解釋它,所以提前致歉!如何將所有libreoffice calc電子表格表一起滾動。 (或其他類似3D的想法)

我想要一個「3D」電子表格,其目的是在正常2D單元格中具有主要條目,然後在每個單元格之上的第三維中(可能同樣重要)條目。這是多張表已經允​​許的問題,問題是我不能一次輕鬆地看到所有第三維單元格。

我第一次希望找到一些使用實際3D工作表的複雜方法,但目前爲止沒有運氣。我意識到,如果我只能確保其他紙張與我的第一張紙張對齊,那麼這將足夠好,所以我可以通過在紙張之間切換沿着第三維「滾動」。

那麼,有什麼辦法可以將所有的紙張捲起來嗎?這樣,如果我向下滾動紙張1以查看單元格123A,則當切換到紙張2時,單元格123A在屏幕上處於相同位置,以此類推3或3個以上。

如果這是不可能的,但任何人都有不同的解決方案的建議(即使使用不同的程序(在Linux上)),這將是偉大的。

非常感謝!

+0

不確定確切的實現,但如果你足夠精明,可以實現關於[here](http://www.cpearson.com/excel/Det​​ectScroll.htm)處理的事件(處理窗口事件)並強制其他紙張的捲動。我不知道這將是多麼繁瑣或過程密集。 –

+0

感謝您的建議。我肯定不夠精明,而且它看起來像MS Excel專用的,而不是libreoffice或其他我可以在Linux上使用的東西? – zooombini

+0

啊,對不起,我沒有看到他的標籤,只是假設Excel。希望你找到你想要的東西! –

回答

2

這裏是OpenOffice的基本完整的工作方案:

Global OldSheet As Object 
Global HandlingActivationEvent As Boolean 

Sub RegisterMyActivationEventListener 
    oListener = CreateUnoListener(_ 
     "ActivListener_", "com.sun.star.sheet.XActivationEventListener") 
    oController = ThisComponent.CurrentController 
    oController.addActivationEventListener(oListener) 
    OldSheet = oController.ActiveSheet 
    HandlingActivationEvent = False 
    MsgBox "Now Listening" 
End Sub 

Sub ActivListener_activeSpreadsheetChanged(oEvent) 
    If HandlingActivationEvent Then 
     Exit Sub 
    End If 
    HandlingActivationEvent = True 
    oController = ThisComponent.CurrentController 
    newSheet = oController.ActiveSheet 
    oController.setActiveSheet(OldSheet) 

    col = oController.getFirstVisibleColumn() 
    row = oController.getFirstVisibleRow() 
    oController.setActiveSheet(newSheet) 
    oController.setFirstVisibleColumn(col) 
    oController.setFirstVisibleRow(row) 

    'MsgBox col & ", " & row 
    OldSheet = newSheet 
    HandlingActivationEvent = False 
End Sub 

要使其工作,去Tools -> Customize。在「事件」選項卡中,將RegisterMyActivationEventListener分配給Open Document事件。

代碼的說明:

相反同時滾動片材的,它只是滾動到每當不同片被激活的相應單元格。它使用XViewPane界面來查看上一頁滾動的位置,並將下一頁滾動到同一位置。

要找出工作表何時激活,代碼使用an event listener作爲XActivationEventListener接口。

+1

謝謝,這看起來令人生畏但很好!我之前從未做過任何關於宏或Basic的工作,所以我已經按照快速教程製作了一個似乎可以工作的Hello World宏。我在哪裏以及如何實施您提供的代碼?我試圖把它全部複製到宏模塊中,但是它給出了編譯器錯誤「Dim oListener」中的「Expected Sub」 我希望用我完全的經驗來解釋它並不是太複雜! – zooombini

+0

好的,我繼續實施代碼完整,你現在應該可以複製並粘貼它,而不需要做任何修改。 –

+0

非常感謝,非常感謝!太棒了! – zooombini

相關問題