在使用 LibreOffice 中的自动过滤器时,我需要一些帮助。我过滤的每个列还应该包含空单元格。例如,如果这是数据:
我想过滤GMC
and truck
,我会在每一列上得到这个(在 Excel 中使用自动过滤器完成):
但是在 LibreOffice Calc 中这样做似乎是不可能的,即使使用标准过滤器(这在不止几列上会非常麻烦)。
有人可以给我一个简单的方法吗?
在使用 LibreOffice 中的自动过滤器时,我需要一些帮助。我过滤的每个列还应该包含空单元格。例如,如果这是数据:
我想过滤GMC
and truck
,我会在每一列上得到这个(在 Excel 中使用自动过滤器完成):
但是在 LibreOffice Calc 中这样做似乎是不可能的,即使使用标准过滤器(这在不止几列上会非常麻烦)。
有人可以给我一个简单的方法吗?
您可以用一个空格填充空单元格。这样,它们在屏幕和打印上似乎仍然是空的,但是可以访问空格字符进行过滤:
我确信 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”按钮。