对象(ShapeRange)名称VBA

时间:2017-11-23 13:30:16

标签: vba object ms-word

嗨大家好我有问题。

我正在处理多个“* .docx”文档

它们具有相似的属性,并且每个属性都有很少的对象(其他文档)

我需要打开的特定对象在不同文档中具有不同名称的问题:

“对象17”,“对象27”等。

所以我无法使用此代码自动化它:

With wd

 .Activedocument.Shapes("Object 17").Select

 .Selection.ShapeRange(1).OLEFormat.DoVerb VerbIndex:=wdOLEVerbPrimary

 .Selection.WholeStory

 .Selection.Copy

End With

关键是在每个文档中,此对象具有相同的“名称”ex。 “ ASF_Debtor ”但是从代码级别来看,它是“对象17”,“对象28”等。

可以找到我的正确对象吗?

1 个答案:

答案 0 :(得分:0)

它看起来现在有效:

Dim obj as shape

For Each obj In ActiveDocument.Shapes

ActiveDocument.Shapes.Range(i).Select


Debug.Print Selection.ShapeRange.Name

Debug.Print Selection.ShapeRange(1).OLEFormat.IconLabel


If Selection.ShapeRange(1).OLEFormat.IconLabel = "ASF_DebtorID" Then

   Selection.ShapeRange(1).OLEFormat.DoVerb VerbIndex:=wdOLEVerbPrimary

   Selection.WholeStory

   Selection.Copy

end if

i = i + 1

next