【问题标题】:VBA to remove jpg file from word doc and to delete pages using books marksVBA从word doc中删除jpg文件并使用书签删除页面
【发布时间】:2020-11-17 07:41:24
【问题描述】:

美好的一天!

查看使用 VBA 通过用户表单按下按钮从 word doc 中删除照片/jpg。示例:如果我想创建一个备忘录,那么它会保留它。如果我想创建另一个表单(不是备忘录),则删除照片。我使用右侧格式化的扭曲文本预先定位了照片。我尝试使用 word 中的查找/搜索功能来查找特殊图形来替换它。 >g 但它找不到我要删除的 jpg。似乎 Word 没有检测到该照片/jpg。看图。

Picture

我尝试过的代码;

Private Sub CommandButton4_Click()
ActiveDocument.Bookmarks("memodep").Delete
ActiveDocument.Bookmarks("memounit").Delete
ActiveDocument.Bookmarks("memoloc").Delete
ActiveDocument.Bookmarks("memoaddress").Delete

Do While ActiveDocument.InlineShapes.Count > 0
ActiveDocument.InlineShapes(1).Delete
Loop

Intro.Hide
OPORD.Show

Dim dod.jpg As InlineShape
For Each objPic In ActiveDocument.InlineShapes
objPic.Delete
Next objPic
End Sub


Intro.Hide
OPORD.Show

【问题讨论】:

    标签: vba ms-word jpeg bookmarks


    【解决方案1】:

    如果图形与文本内嵌,您可以选择它并创建一个额外的书签来包围它。然后使用与书签内的文本删除相同的代码。

    如果图形是浮动的,它会锚定在文本上。 (文件>选项>显示>对象锚点使它们可见)删除图形所锚定的段落也会删除图形。

    我怀疑它是浮动的,因为您使用 InlineShapes 的代码不起作用。

    【讨论】:

    • 我认为创建新书签不是我的目标。难道是因为它在标题中而没有检测到它吗?当前图像属性;它使用“带文本换行”和设置“在文本前”浮动。文件名为 dod.jpg。
    • 文件名无关。 Word 只跟踪链接图片的文件名,它会重命名嵌入的图片。正如 Timothy 指出和我暗示的那样,InlineShapes 永远不会找到浮动形状。根据文档的实际部分以及形状所在的标题类型,您可能必须查看 Timothy 的代码才能使 VBA 正常工作。 docs.microsoft.com/en-us/office/vba/api/word.section.headers
    • 我问过蒂莫西,但是,为什么当我控制 F 并且能够找到任何东西时,页眉/页脚/正文但图形功能可以在页眉中找到一张简单的照片?
    【解决方案2】:

    “我使用右侧格式化的扭曲文本预先定位了照片。”

    这意味着徽标是Shape 而不是InlineShape

    假设您只有一个,ActiveDocument.Shapes(1).Delete 应该可以完成这项工作。

    当然,当您删除徽标时,其右侧的所有文本都会移回左边距。

    编辑: 您的问题忽略了标头中徽标的重要信息。

    您的第一个任务是确定标题包含在哪个部分。您的第二个任务是确定徽标包含在 3 个可能的标题中的哪一个。

    为您指明正确的方向:

    ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes(1).Delete
    

    顺便说一句,dod.jpg 不是 VBA 中变量的有效名称

    【讨论】:

    • 它使用“带文本换行”和设置“在文本前面”浮动。文件名是 dod.jpg。当我尝试上面提供的代码时,我得到一个运行时收集错误超出范围。我的目标是保持中心书签所在的位置。我是否必须重命名原始文件?
    • 首先,我很抱歉遗漏了这些信息。我假设您可以通过照片判断它处于标题状态。那行得通!原谅我,但为什么要这样做?我有数百个 word 文档,它们将搜索任何位置的任何内容(控制 F)以在页脚/页眉中找到页面正文中的任何内容。
    • @RoyZacharias - Find 只能查找文本,不能查找形状。在 VBA 中工作时,您直接使用文档的各种元素,并刻意避免选择任何内容。如果您在 7-Zip 中打开 Word 文档,它可能会帮助您更好地理解其结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多