VBA 允许在工作表受保护时创建 ListBox

时间:2021-07-15 17:33:17

标签: excel vba listbox activex

我有一个电子表格,它使用代码添加包含命名范围内数据的多选列表框。从此列表中选择的内容将输出到所选单元格。

仅当我保护工作表时,我才会收到运行时错误 1004:无法获取列表框类的添加属性,因此无法添加列表框。

selectedCell 是解锁的。

如何在允许创建列表框的同时防止删除数据和公式?

部分代码如下:

Public Sub CreateCatPopUp(ByRef selectedCell As Range)
    Set catSelectCell = selectedCell
    Dim CatPopUpCell As Range
    Set CatPopUpCell = catSelectCell.Offset(1, 0)
    Const CAT_POPUP_HEIGHT As Double = 300
    Dim catBox As ListBox
    Set catBox = ActiveSheet.ListBoxes.Add(CatPopUpCell.Left, _
                                              CatPopUpCell.Top, _
                                              ActiveCell.Width, _
                                              CAT_POPUP_HEIGHT)

1 个答案:

答案 0 :(得分:0)

如果您将 UserInterFaceOnly 设置为 true,它将保护用户界面并允许使用宏。

我将以下代码添加到 Workbook_Open 事件中,现在工作表上的所有 vba 都在工作。

ActiveSheet.Protect UserInterFaceOnly:=True