我正在使用此 vba 代码自动检查 Excel 工作表上的特定复选框:
'Listing all shapes in a worksheet object variable named 'sht'
For Each oShp In sht.Shapes
If IsShapeCheckBox(oShp) Then
'Only Checkboxes type shapes
With oShp.TopLeftCell
If .Column = ColIsForTest And .Row = lRow Then 'found specific checkbox
oShp.Select 'selecting it (for convenience in step by step testing mode)
oShp.OLEFormat.Object.Value = True
Exit For
End If
End With
End If
Next oShp
但是,尽管所有复选框均由
oShp.Select
行正确选择,但代码行 oShp.OLEFormat.Object.Value = True
仅适用于一种形状,不适用于接下来的 100 个形状。
我也尝试过这个:
Application.ActiveSheet.CheckBoxes(oShp.OLEFormat.Object.Name).Select
Application.ActiveSheet.CheckBoxes(oShp.OLEFormat.Object.Name).Value = True
'oShp.OLEFormat.Object.value' 设置为 true,但未选中复选框。 我想知道为什么这适用于一种形状,而不适用于其他形状(我想其他形状是通过复制/粘贴创建的) 我也检查了,没有分组形状。
感谢您的帮助,
弗洛里安
在我看来,这种情况
.Column = ColIsForTest And .Row = lRow
会导致您所声称的行为。