当前位置: 首页 > 知识库问答 >
问题:

如何从Libreoffice Calc工作簿的所有工作表中删除所有图像

禄奇希
2023-03-14

我有一个Libreoffice Calc工作簿,有60多张纸,其中很多都有复制到它们的沉重图像。我想删除所有的图像与一个Calc基本宏。我尝试了以下操作,但失败了,出现一个基本的运行时错误,说明找不到属性或方法:picture.

Sub DeleteAllPics()
    Dim Pic As Object
    For Each Pic In ThisComponent.CurrentController.ActiveSheet.Pictures
       Pic.Delete
Next Pic
End Sub
Sub deleteAllPics()
    Dim wkSheet As Object
    For Each wkSheet In ThisWorkbook.ThisComponent.Sheets.getByName()
        Dim Pict As Object
        For Each Pict In wkSheet
            Pict.Delete
        Next Pict
    Next wkSheet       
End Sub
   Sub RemoveImages
       Dim oDoc as Object
       oDoc = ThisComponent
       Dim oGraphics as Object
       oGraphics = oDoc.getGraphicObjects()
       Dim oImg as Object
       For Each oImg in oGraphics
       oDoc.getText().removeTextContent(oImg)
       Next 
    End Sub

我需要一个代码,将工作像上面的一个,以删除所有的图像,从一个Calc工作簿的所有工作表。请帮帮我.

共有1个答案

咸疏珂
2023-03-14

对于电子表格,您需要获得每个表格的XDrawPage。

下面是适当的LibreOffice基本代码。在LibreOffice的术语中,它被称为电子表格或文档,而不是工作簿。而且for each是从VBA借用的,对XDrawPage不起作用。(可以使用for each枚举工作表,但为了保持一致,最好使用标准的for循环。)

Sub DeleteAllPics()
    Dim oDoc As Object
    Dim oDrawPage As Object
    Dim oShape As Object
    Dim iShape As Integer
    Dim iSheet As Integer
    oDoc = ThisComponent
    For iSheet = 0 To oDoc.getSheets().getCount() - 1
        oDrawPage = oDoc.getSheets().getByIndex(iSheet).getDrawPage()
        For iShape = oDrawPage.getCount() - 1 To 0 Step -1
            oShape = oDrawPage.getByIndex(i)
            oDrawPage.remove(oShape)
        Next iShape
    Next iSheet
End Sub
 类似资料:
  • 我想在Sheet1之后将所有工作表从特定工作簿复制到当前工作簿 此代码正在复制所有工作表,包括隐藏的工作表。如何只复制可见的工作表?

  • 我使用这段代码将工作簿中的每一张工作表复制到一个新的工作簿中,它工作得很好,但它颠倒了工作表的顺序,是否有任何办法阻止它这样做? 我正在复制所有的工作表,这样我就可以将它保存为不同的文件扩展名,这是我发现唯一有效的方法。

  • 我目前有一个工作簿,可以在excel中打开多个txt文件,过滤所有数据,只从中导入我需要的内容。每次导入都会进入不同的excel表“1”、“2”、“3”……到“31”(天)。 所有工作表具有相同的列数,但行数不同。我需要做的是将所有工作表合并到同一工作簿中的“ALL”工作表中。 帮助?!

  • 本文向大家介绍excel-vba 检索活动工作簿中的所有工作表名称,包括了excel-vba 检索活动工作簿中的所有工作表名称的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我尝试使用Apachepoi库将新工作表添加到现有的excel文件中,如下面的代码所示。 问题是文件中的所有工作表都被删除,只有新工作表存在。 这是什么问题?

  • 我指的是这个例子。 它使用jsPlumb版本2.4.3,我想删除所有连接,但它不起作用,要删除所有连接,我正在使用这段代码。 要删除单个连接,我使用下面的代码,但它显示。分离不是一个函数。 jsplumb是否存在任何版本问题。 任何帮助将高度赞赏。谢啦