【问题标题】:How do I read the value of a checkbox in a word (*.doc) file in VB.net using a Range object?如何使用 Range 对象读取 VB.net 中 word (*.doc) 文件中复选框的值?
【发布时间】:2009-06-19 04:34:50
【问题描述】:

如何在 VB.net 中使用范围对象读取 word (*.doc) 文件中复选框的值?

这是我目前所拥有的:

Dim app As New Word.Application
Dim doc As Document
doc = app.Documents.Open("C:\myDoc.doc")
dim chkBox as Bookmark
chkBox = doc.Bookmarks("MyCheckbox")
Dim rng as Range
rng = chkBox.Range

其中“MyCheckbox”是word文档中复选框的书签。

【问题讨论】:

    标签: vb.net ms-word office-interop


    【解决方案1】:

    您没有使用复选框本身的名称读取复选框的值的任何特殊原因?

    如果您的书签定义的范围包含一个复选框,则根据插入复选框的方式,它将在InlineShapes 集合(如果复选框与文本内嵌插入)或Shapes 集合中找到(如果作为浮动对象插入。)

    然后您需要遍历 Shapes 或 InlineShapes 的集合以查找相关复选框。

    遍历 InlineShapes 集合中的控件

    Dim ctl As InlineShape
    For Each ctl In rng.InlineShapes
        If ctl.Type = wdInlineShapeOLEControlObject Then
            If ctl.OLEFormat.ClassType Like "Forms.CheckBox*" Then
                'current version of ctl is a checkbox, do what you will with it.
    
            End If
        End If
    Next ctl
    ...
    

    这应该让你更接近,但如果复选框的名称是可预测的,最好直接通过名称来解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多