我有一个LibreOffice Calc电子表格,用于跟踪工作中的应收账款。每张表都列出了发票及其状态(付款,未付款等)以及每张发票的信息。我正在尝试创建一个摘要表,列出每张表中的某些数据。手动创建工作表很容易,但我正在尝试“自动化”该过程。如果我在添加和删除帐户到文件时添加新工作表(或删除一个工作表),我希望摘要页面自动更新。
我知道LibreOffice为每个工作表分配了一个我可以在某种公式中引用的索引号,但是当从其中的单元格中获取值时,我找不到可以用来引用该索引号的函数。人们会期望像Sheet(2)这样的函数会引用第二张表,但是,唉,事实并非如此!
我尝试过使用间接和地址功能但没有成功,但我不确定我是否不理解这些功能,或者它们是否适合我想要完成的功能。
答案 0 :(得分:1)
长期以来,这一直是Calc的一个缺失部分。首选解决方案是编写用户定义的函数。电子表格公式不能按索引号访问工作表,但Basic可以访问工作表。
Function SheetName(Optional nSheet)
If IsMissing(nSheet) Then
SheetName = ThisComponent.getCurrentController().getActiveSheet().getName()
Else
SheetName = ThisComponent.getSheets().getByIndex(nSheet-1).getName()
EndIf
End Function
然后像这样获得第一个单元格A1的相对地址。
=ADDRESS(1,1,4,,SHEETNAME(1))
https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=49799给出了稍微不同的功能。