VBA - 通过宏检查复选框不适用于每个复选框

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

我正在使用此 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,但未选中复选框。 我想知道为什么这适用于一种形状,而不适用于其他形状(我想其他形状是通过复制/粘贴创建的) 我也检查了,没有分组形状。

感谢您的帮助,

弗洛里安

excel checkbox
1个回答
0
投票

在我看来,这种情况

.Column = ColIsForTest And .Row = lRow
会导致您所声称的行为。

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