在Libre办公室使用自动过滤器需要一些帮助 . 我的每个过滤列都应包含空单元格 .
例如,如果这是数据:
我想过滤GMC和卡车,我会在每列上得到这个(使用autofilter在excel中完成):
但是在libre中这样做似乎是不可能的,即使使用标准过滤器(这不仅仅是几个列就非常麻烦) . 有人能给我一个简单的方法吗?
你可以用一个空格填充空单元格 . 这样,它们在屏幕和打印上似乎仍然是空的,但空格字符可以进行过滤:
我相信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
您可以轻松地将其粘贴到工具>宏>组织宏> LibreOffice Basic ...>我的宏>标准(>模块1)下,单击'New' .宏在'Sub'之间,直到'End Sub' .
为宏创建一个按钮,例如在自定义工具栏上:工具>自定义...>工具栏>新建命名新工具栏:标准2保存在:LibreOffice Calc .
选择工具栏'Standard2' .单击'Add...' .类别:LibreOffice宏>我的宏>标准> Module1在“命令”下,选择“ForFilter”点击“添加”,“关闭” .如果必须删除宏,请单击“修改”旁边的下拉列表中的“删除” .单击“确定” .完成 .
我改编了一个我在网上找到的剧本 . 代码行开头的撇号或引号(')表示该行不被解释为代码,而是被解释为注释 .要运行宏,只需单击“ForFilter”按钮即可 .
2 回答
你可以用一个空格填充空单元格 . 这样,它们在屏幕和打印上似乎仍然是空的,但空格字符可以进行过滤:
我相信LibreOffice会在某种程度上填补这个空白 . 与此同时,LibreOffice用户将使用解决方法,使用单个空间填充空单元格 . 如果你想自动化这个,这里是一个使用LibreOffice Basic脚本的简单宏:
REM ***** BASIC *****
您可以轻松地将其粘贴到工具>宏>组织宏> LibreOffice Basic ...>我的宏>标准(>模块1)下,单击'New' .
宏在'Sub'之间,直到'End Sub' .
为宏创建一个按钮,例如在自定义工具栏上:
工具>自定义...>工具栏>新建
命名新工具栏:
标准2
保存在:LibreOffice Calc .
选择工具栏'Standard2' .
单击'Add...' .
类别:
LibreOffice宏>我的宏>标准> Module1
在“命令”下,选择“ForFilter”
点击“添加”,“关闭” .
如果必须删除宏,请单击“修改”旁边的下拉列表中的“删除” .
单击“确定” .
完成 .
我改编了一个我在网上找到的剧本 . 代码行开头的撇号或引号(')表示该行不被解释为代码,而是被解释为注释 .
要运行宏,只需单击“ForFilter”按钮即可 .