2017-12-18 220 views
0

我有4列,每列有2组复选框,我正在寻找循环遍历每个集合,并检查两个复选框是否都被选中,如果它们然后退出子集并且将该项目的名称与在msgbox中的一组中选中的2个复选框进行检查。在Word中循环表格并检查复选框是否勾选

Set oRow = oTable.Rows 
Set oTable = doc.Tables(3) 
For Each oRow In oTable.Rows 
    With oRow 
     If .Cells(3).Range.Text <> .Cells(3).Range.Text <> "Prep" Or .Cells(3).Range.Text <> "Y" Or .Cells(3).Range.Text <> "" Then 
      If .Cells(3).ParentContentControl.Checked = True And .Cells(4).ParentContentControl.Checked = True Then 'error here 
       MsgBox "The following item has both preparer and reviewer checked:" & .Cells(2) 
       Exit Sub 
      ElseIf .Cells(5).ParentContentControl.Checked = True And .Cell(6).ParentContentControl.Checked = True Then 
       MsgBox .Cell(2) 
       Exit Sub 
      End If 
     End If 
    End With 
Next oRow 

的问题是我不断收到一个错误。

运行时错误“438”,对象不支持此属性或方法。

+0

什么样的错误? –

+0

运行时错误'438',对象不支持此属性或方法。 – Lowpar

+0

你有什么样的复选框,它是'ContentControl'还是'Field'?您能否添加文档的该部分的屏幕截图以便更好地理解? –

回答

1

要访问ContentControl嵌入表,在单元格,则需要以下引用:

If .Cells(3).Range.ContentControls(1).Checked = True And .Cells(4).Range.ContentControls(1).Checked = True Then 
+0

看起来不错,我会检查,一个问题,我需要一个以确保在单元格不包含复选框时不尝试代码行。就像.Cells(3).Parent.Type = wdContentControlCheckBox你会有什么想法? – Lowpar

+0

尝试像这样:'如果.cells(3).range.contentcontrols.count> 1然后'检查是否存在任何CC ... –

+0

.Cells(3).Range.ContentControls.Count> 0工作! – Lowpar

相关问题