Excel 如何更新受保护工作表中的表单控件标题?

Excel 如何更新受保护工作表中的表单控件标题?,excel,vba,Excel,Vba,我有一个表单控件,希望在两个条目之间更改其标题。工作表受保护,但即使我正在更改userinterfaceonly=true并允许drawingobjects=true它仍然无法更改!这是一个错误还是我做错了什么?我正试图避免使用uprotect==>modify==>protect解决方案 Sub ShowChangesOnly() Dim ws As Worksheet, Rng As Range, Criteria As Range, Btn As Object Set ws = T

我有一个表单控件,希望在两个条目之间更改其标题。工作表受保护,但即使我正在更改
userinterfaceonly=true
并允许
drawingobjects=true
它仍然无法更改!这是一个错误还是我做错了什么?我正试图避免使用uprotect==>modify==>protect解决方案

Sub ShowChangesOnly()
Dim ws As Worksheet, Rng As Range, Criteria As Range, Btn As Object
    Set ws = ThisWorkbook.Sheets("Tod")
    ws.Protect , True, , , True, , , , , , , , , True, True
    Set Btn = ws.Buttons("Button 1")
    Set Rng = ws.Range("TodayD")
    Set Criteria = ws.Range("Criteria")
    RemoveFilters ws
    If Btn.Caption = "Filter Changes" Then
        Rng.AdvancedFilter xlFilterInPlace, Criteria
        Btn.Caption = "Show All"
        MsgBox "Total of " & Rng.Columns(3).SpecialCells(12).Count - 1 &  _
          " Found as Having Changes."
        Else
            Btn.Caption = "Filter Changes"
        End If
    End Sub
提前谢谢

干杯,

如果希望图形对象为false


来自帮助:
True以保护形状。默认值为True。

删除过滤器的作用是什么?是否希望图形对象为false,
True以保护形状。默认值为True。
这将调用一个过程来删除工作表及其listobjects(如果有)中的所有筛选器。这是我的通用代码之一。让我用FALSE来表示对象,也许这就是原因。@Nathan_Sav是的,这就是问题所在,我被以下项目所欺骗,这些项目都是允许类型,所以我认为这也意味着允许对象更改。你可以将其添加为答案,这样我就可以接受它。谢谢