Word VBA:如何删除形状(水平线)?

Word VBA:如何删除形状(水平线)?,vba,ms-word,line,shapes,Vba,Ms Word,Line,Shapes,尝试查找Word文档中的所有水平行并将其删除。有点麻烦。。。感谢您的帮助。代码如下 Sub Replace() Dim oShp As Shape Dim i As Long With ActiveDocument For i = .InlineShapes.Count To 1 Step -1 With .InlineShapes(i) oShp.Select Selection.Delete End

尝试查找Word文档中的所有水平行并将其删除。有点麻烦。。。感谢您的帮助。代码如下

Sub Replace()

Dim oShp As Shape
Dim i As Long

With ActiveDocument
    For i = .InlineShapes.Count To 1 Step -1
        With .InlineShapes(i)
            oShp.Select
            Selection.Delete
        End With
    Next
End With

End Sub

您可以迭代inlineShapes集合,只删除类型为水平线的形状

Public Sub DeleteHorizontalLines()

    Dim docShape As InlineShape
    
    For Each docShape In ActiveDocument.InlineShapes
    
        If docShape.Type = wdInlineShapeHorizontalLine Then
            docShape.Delete
        End If
        
    Next docShape

End Sub
让我知道它是否有效

编辑:要用文本替换形状,可以在删除之前添加文本

添加此行:

docShape.Range.InsertAfter "Horizontal line"
docShape.Delete
在这一行之前:

docShape.Range.InsertAfter "Horizontal line"
docShape.Delete

您可以迭代inlineShapes集合,只删除类型为水平线的形状

Public Sub DeleteHorizontalLines()

    Dim docShape As InlineShape
    
    For Each docShape In ActiveDocument.InlineShapes
    
        If docShape.Type = wdInlineShapeHorizontalLine Then
            docShape.Delete
        End If
        
    Next docShape

End Sub
让我知道它是否有效

编辑:要用文本替换形状,可以在删除之前添加文本

添加此行:

docShape.Range.InsertAfter "Horizontal line"
docShape.Delete
在这一行之前:

docShape.Range.InsertAfter "Horizontal line"
docShape.Delete

这确实奏效了。非常感谢。我们用字符串“水平线”替换形状,而不是完全删除形状,怎么样?我看不到.docshapeThat下的任何替换函数,请您进行编辑。这一切都很有效。非常感谢。我们用字符串“水平线”替换形状,而不是完全删除形状,怎么样?我看不到.docshapeThat下的任何替换函数,请您进行编辑。工作完美无瑕