Word VBA宏,将所有定位点移动到浮动图像的顶部

Word VBA宏,将所有定位点移动到浮动图像的顶部,vba,ms-word,Vba,Ms Word,我有一些大文档,每个文档有+50个图像。问题是它们中的大多数都是浮动图像。位置是好的,但图像定位在错误的位置,通常定位到页面的最后一行。我想把所有的锚移动到图片浮动的位置 评论中的精确描述:我想读取图像的位置,并将其锚定移动到此位置。因此,如果图像位于第3页的中间,锚定在第3页的底部,那么我想把锚移到这页的中间。并对所有图像执行相同的操作 可能吗 我不能让它们内联,这会改变我文档的结构。 我试着将它们移动一些值,但宏不会改变锚点的位置 尝试: 尝试: 你的解决方案太棒了!我不能要求更多了。谢谢你

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

评论中的精确描述:我想读取图像的位置,并将其锚定移动到此位置。因此,如果图像位于第3页的中间,锚定在第3页的底部,那么我想把锚移到这页的中间。并对所有图像执行相同的操作

可能吗

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

尝试:

尝试:


你的解决方案太棒了!我不能要求更多了。谢谢你的帮助。有了这个宏,我的宏就完成了@你的解决方案太棒了!我不能要求更多了。谢谢你的帮助。有了这个宏,我的宏就完成了@大脚架
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