我对我正在寻找的内容有一个简单的概念,但我不确定如何清楚地解释它,所以提前道歉!
我想要一个“3D”电子表格,目的是在正常的2D单元格中包含主条目,然后在每个单元格上方的第三维中具有(可能只是同样重要的)条目。这是多张纸已经允许的,问题是我不能一次看到所有第三维单元格。
我首先希望找到一些使用实际3D工作表的复杂方法但到目前为止没有运气。我意识到,如果我只能确保其他纸张与我的第一张纸张对齐那么这就足够了,所以我可以通过在纸张之间切换来沿着第三维“滚动”。
那么,有没有办法将所有纸张一起滚动?这样,如果我在纸张1上向下滚动以查看单元格123 A,当我切换到纸张2时,单元格123 A在屏幕上处于相同位置,对于纸张3和更高页面依此类推。
如果这是不可能的,但任何人都有不同解决方案的建议(即使使用不同的程序(在Linux上)),这将是很棒的。
非常感谢!
答案 0 :(得分:2)
以下是OpenOffice Basic中的完整工作解决方案:
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界面。