Word互操作并遍历Shape对象以查找文本框] >

问题描述 投票:0回答:1

我正在尝试遍历word文档及其形状对象以找到DOCVARIABLES。形状对象具有一个文本框。这是我直接从Word中提取的宏。

Selection.HeaderFooter.Shapes.Range(Array(“ Text Box 7”))。Select

文本框位于页眉页脚中包含的形状对象中。我已经遍历了页眉和页脚的形状范围,但是只检索了shapeRange [j] .Type = msoEmbeddedOLEObject

foreach (HeaderFooter footer in section.Footers)
{
    for (int i = 1; i <= footer.Shapes.Count; i++)
    {
        Microsoft.Office.Interop.Word.ShapeRange shapeRange = footer.Shapes.Range(i);
        for (int j = 1; j <= shapeRange.Count; j++)
        {
            string shapetype = shapeRange[j].Name;
            if (shapeRange[j].Type == MsoShapeType.msoTextBox)
            {
                var shapeFields = shapeRange.TextFrame.TextRange.Text;
                if (shapeFields.Contains("DOCVARIABLE"))
                {
                }
            }
        }
    }
}

我正在尝试遍历word文档及其形状对象以找到DOCVARIABLES。形状对象具有一个文本框。这是我直接从Word中提取的宏。选择....

c# ms-word office-interop
1个回答
1
投票

由@slightlysnarky解决-验证TextFrame.HasText为true。

© www.soinside.com 2019 - 2024. All rights reserved.