Word VBA:Word表格单元格中复选框的状态

时间:2015-02-25 20:47:57

标签: vba checkbox word-vba

我有一组相同的Word文件,其中包含一组带有简单复选框(来自开发人员选项卡/内容控件)的表中的是/否问题,这些复选框包含在第3列和第5列中,对应于是或否答案。

选中或取消选中是和否复选框。

我想计算每个问题的“是”和“否”检查的数量。 Word文件已经可用,其格式无法更改。

作为此任务的第一步,我尝试识别表格单元格何时包含复选框,然后读取复选框的状态:选中或取消选中。

我来到以下代码来识别复选框。 VBA抱怨编译错误:" Object Required",at line" set nitem ....."。

Dim tbl As Table
Dim cl As Cell
Dim nitem As Integer

''All tables
For Each tbl In ActiveDocument.Tables
    For Each cl In tbl.Rows(1).Cells
        If Not cl.Range.ContentControls Is Nothing Then
            Set nitem = c1.Range.ContentControls.Count
            MsgBox ("Nr of Items" & nitem)
            If c1.Range.ContentControls.Item(1).Type = wdContentControlCheckBox Then
              ''Select ...
              cl.Column.Select
               .........
            End If
        End If
    Next
Next

1 个答案:

答案 0 :(得分:1)

关键字“Set”用于对象。整数不是一个对象,所以你的行必须只是:

nitem = cl.Range.ContentControls.Count

没有“设置”

编辑:这会导致您所指的错误,但我也注意到在您发表评论后需要修复的其他问题。

请注意,声明的变量是“cl”,其中第二个字符是小写“L”。您已尝试将其用作“c1”,其中第二个字符是数字“一”确保在出现此变量的所有情况下使用“CL”(在相关行中以及此下面的两行)

如果在任何子例程之前在“This_Workbook”模块(或代码所在的任何模块)的开头使用“Option Explicit”,这将有助于防止拼写错误,因为编译器会引发异常,提醒您变量未定义。