【问题标题】:Autofilter with empty cells使用空单元格自动过滤
【发布时间】:2019-07-16 15:42:27
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: libreoffice-calc


    【解决方案1】:

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

    【讨论】:

    • 我真的很想包含空单元格,而不仅仅是看起来空的单元格。
    • 抱歉,但我提出的解决方法是我知道的唯一解决方案。
    【解决方案2】:

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

    REM ***** 基本 *****

    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)下,单击“新建”。
    宏介于“Sub”和“End Sub”之间。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多