vba - 一次重新设置所有选项按钮

标签 vba excel excel-2007

我编写了一个代码,用于一键重置所有选项按钮,但它给出错误,“对象不支持该属性或事项”。

Sub Add_New_Record()
Dim i As Integer
For i = 1 To 30
    With Sheets("Form")
        '-- unlock the worksheet
        .Unprotect
        .OptionButton(i).Value = False

        '-- lock the worksheet
        '.Protect

        .Activate
        .Range("Q12").Select
     End With
     Next i
End Sub

任何人都可以建议我如何修复代码并使所有选项按钮的值均为“false”。

我知道如何单独完成,例如:

Sub Add_New_Record()
    With Sheets("Form")
        '-- unlock the worksheet
        .Unprotect
        .OptionButton1.Value = False

        '-- lock the worksheet
        '.Protect
        .Activate
        .Range("Q12").Select
     End With
End Sub

但是由于我有太多按钮,代码会变得非常长且效率低下。

感谢您的帮助和时间。

最佳答案

首先,With 语句应该位于 For 循环之前。它应该是.OptionButtons。试试这个。

Sub Add_New_Record()
    Dim i As Integer

    With Sheets("Form")
        .Unprotect
        For i = 1 To 30
            .OptionButtons(i).Value = False
        Next i
        .Protect
    End With
End Sub

关于vba - 一次重新设置所有选项按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18691864/

相关文章:

excel-2007 - 在 Excel 2007 工作表单元格中显示自定义文档属性值

vba - 识别 (Excel 2007) VBA 或其他中固定的最近文件?

vba - 如何等到 ActiveWorkbook.RefreshAll 完成后再执行更多代码

vba - Excel VBA : Best way to work with data of CSV file

ruby - 如何直接在 watir 中以 excel 格式创建测试报告?

sql-server - 将数据从列转置为行

vba - Tan() 返回错误值

excel - 统计打开的 Excel 工作簿的数量

vba - 在 Access 表单上取消排序或禁止排序

vba - 如何在Excel VBA中使用Google的搜索结果?