【问题标题】:Word VBA macro which moves all anchors to top of floating image将所有锚点移动到浮动图像顶部的 Word VBA 宏
【发布时间】:2020-03-01 10:40:31
【问题描述】:

我有一些大型文档,每个文档都有 +50 张图片。问题是它们中的大多数是浮动图像。位置很好,但图像锚定在错误的位置(通常是页面的最后一行)。我想将所有锚点移动到其图片浮动的位置。

(更精确的描述,来自 cmets:我想读取图像的位置并将其锚点移动到该位置。因此,如果图像位于第 3 页的中间,并且其锚点位于第 3 页的底部,我想要将锚点移动到此页面的中间。并对所有图像执行相同的操作。)

有可能吗?

我不能让它们内联,它会改变我的文档结构。 我试图将它们移动一些值,但宏不会改变锚点的位置。

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    试试:

    Sub Demo()
    Application.ScreenUpdating = False
    Dim i As Long, vPos As Single, Rng As Range
    With ActiveDocument
      For i = .Shapes.Count To 1 Step -1
        With .Shapes(i)
          .RelativeVerticalPosition = wdRelativeVerticalPositionPage: vPos = .Top
          With .Anchor
            If .Information(wdVerticalPositionRelativeToPage) > vPos Then
              Set Rng = .Paragraphs.First.Range
              Set Rng = Rng.GoTo(What:=wdGoToBookmark, Name:="\page")
              With Rng
                Do While .Paragraphs(1).Range.Characters.Last.Information(wdVerticalPositionRelativeToPage) < vPos
                  .Start = .Paragraphs(1).Range.End
                Loop
                .Collapse wdCollapseStart
              End With
              Rng.FormattedText = .FormattedText
              .Delete
            End If
          End With
        End With
      Next
    End With
    Application.ScreenUpdating = True
    End Sub
    

    【讨论】:

    • 您的解决方案太棒了!我不能要求更多。谢谢你的帮助。有了这个,我的宏就完成了。 @macropod
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多