试图将下面的宏转换为C#:
For Each varObj In ActiveDocument.Shapes
If varObj.Type = msoEmbeddedOLEObject Then
n = n + 1
End If
Next varObj
我尝试过但不编译的内容:
foreach (Word.Shapes tempLoopVar_varObj in winword.ActiveDocument.Shapes)
{
if (tempLoopVar_varObj.Type == ord.WdInlineShapeType.msoEmbeddedOLEObject)
{
fileCount++;
}
}
winword.ActiveDocument.Shapes
实际上返回了具有Word.Shape
类型的底层对象的迭代器。试试这样:
foreach (Word.Shape tempLoopVar_varObj in winword.ActiveDocument.Shapes)
{
...
}
注意:word-iterop dll中的迭代器/集合不是通用的,但它们的名称遵循一个共同的模式。当您迭代Word.Shapes时,底层对象与集合类型相同,但在单数命名 - > Word.Shape中。