0

在使用 LibreOffice 中的自动过滤器时,我需要一些帮助。我过滤的每个列还应该包含空单元格。例如,如果这是数据:

示例 1

我想过滤GMCand truck,我会在每一列上得到这个(在 Excel 中使用自动过滤器完成):

示例 2

但是在 LibreOffice Calc 中这样做似乎是不可能的,即使使用标准过滤器(这在不止几列上会非常麻烦)。

有人可以给我一个简单的方法吗?

4

2 回答 2

0

您可以用一个空格填充空单元格。这样,它们在屏幕和打印上似乎仍然是空的,但是可以访问空格字符进行过滤:

自动筛选 自动过滤器2

于 2014-04-07T08:24:42.507 回答
0

我确信 LibreOffice 会在某个时候填补这一空白。与此同时,LibreOffice 用户将使用这种变通方法生存下来,用一个空格填充空白单元格。如果您想自动执行此操作,这里有一个使用 LibreOffice Basic 脚本的简单宏:

REM ***** BASIC *****

Sub ForFilter()
 oModel = thisComponent ' at first examine thisComponent
 ' xray oModel
 oSpreadSheet = oModel.getCurrentController().getActiveSheet()
 ' oSpreadSheet = oModel.getSheets().getByIndex(0)
 ' xray oSpreadSheet
 xReplaceDescr = oSpreadSheet.createReplaceDescriptor()
 ' xray xReplaceDescr
 xReplaceDescr.SearchString = ""
 xReplaceDescr.ReplaceString = " "
 lFound = oSpreadSheet.replaceAll(xReplaceDescr)
 ' xray lFound
 'MsgBox lFound & " replaced. AutoFilter should work now!"
 MsgBox "Empty cells filled. AutoFilter should work now."
End Sub


您可以轻松地将其粘贴到 Tools > Macros > Organize Macros > LibreOffice Basic... > My Macros > Standard (> Module1) 下,单击 'New' 。
宏介于“Sub”和“End Sub”之间。

为宏创建一个按钮,例如在自定义工具栏上:
工具 > 自定义... > 工具栏 > 新建
将新工具栏命名为:
Standard2
保存在:LibreOffice Calc。

选择工具栏“Standard2”。
单击“添加...”。
类别:
LibreOffice 宏 > 我的宏 > 标准 >模块 1
在“命令”下,选择“ForFilter”<br> 单击“添加”、“关闭”。
如果您必须删除宏,请单击“修改”旁边的下拉菜单中的“删除”。
单击“确定”。
完毕。

我改编了我在网上找到的脚本。代码行开头的撇号或引号 (') 表示该行不被解释为代码,而是作为注释。
要运行宏,您只需单击“ForFilter”按钮。

于 2015-09-19T08:43:37.893 回答