![](/img/trans.png)
[英]VBA Macro for MS Word to Ignore Spelling Errors in Selected Block of Text
[英]MS Word Macro VBA Help, Selected image
我具有基本的Macro和VBA知识,但是无法弄清楚我在哪里出错了。 (代码插入底部)我希望宏将选定的图像移到页面的顶部中心。 我面临的问题是,它不适用于文档中的每个图像,它适用于第一个图像,然后不再执行任务。 我正在使用Microsoft Word 2016。
main命令执行了我想要的操作,我觉得我的错误在这两行之内
Set myDocument = ActiveDocument
With myDocument.Shapes(1)
整个代码;
Sub AlignToCentre()
'
' AlignToCentre
Dim shp As Shape
Set myDocument = ActiveDocument
With myDocument.Shapes(1)
.WrapFormat.Type = wdWrapSquare
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.Left = wdShapeCenter
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Top = InchesToPoints(1)
End With
End Sub
如果您希望它与选定的图像一起使用,并且仅与选定的图像一起使用,则更像这样,您可以从当前选择中获得形状。
请注意如何首先检查以确保选择了“形状” ...
Sub PositionSelectedShape()
Dim sel As word.Selection
Dim shp As word.Shape
Set sel = Selection
If sel.Type = wdSelectionShape Then
Set shp = sel.ShapeRange(1)
With shp
.WrapFormat.Type = wdWrapSquare
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.Left = wdShapeCenter
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Top = InchesToPoints(1)
End With
End If
End Sub
就像Kim Raaness所建议的那样,您需要遍历想要将所有形状居中的所有形状。
尝试这样的事情:
Sub AlignToCentre()
'
' AlignToCentre
Dim shp As Shape
Set myDocument = ActiveDocument
For Each shp in myDocument.Shapes
With shp
.WrapFormat.Type = wdWrapSquare
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.Left = wdShapeCenter
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
.Top = InchesToPoints(1)
End With
Next shp
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.