我找到了一个Excel VBA解决方案,允许用户展开/折叠分组的行和列,同时保持工作表受到保护,此处:http://www.mrexcel.com/forum/excel-questions/711327-allow-users-click-group-ungroup-protected-sheet-visual-basic-applications.html
对于单个工作表,我的代码如下所示:
Private Sub Workbook_Open()
With Worksheets("Master data")
.Protect Password:="", UserInterfaceOnly:=True
.EnableOutlining = True
End With
End Sub
注意:我将工作表的密码留空(字符串:“”)
但是,我需要允许用户在另一个名为“CPM”的工作表上执行相同的操作。为了实现这一点,我提出了以下代码:
Private Sub Workbook_Open()
Dim sheetsArray As Sheets
Set sheetsArray = ActiveWorkbook.Sheets(Array("Master data", "CPM"))
Dim sheetObject As Worksheet
For Each sheetObject In sheetsArray
With Worksheets(sheetObject)
.Protect Password:="", UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next sheetObject
End Sub
该行
With Worksheets(sheetObject)
导致na错误(Excel表示类型不匹配:我想Excel在这里需要一个字符串)。
有解决此问题的快速解决方法吗?
亲切的问候,
丹尼斯
答案 0 :(得分:0)
使用
With sheetObject
而不是
With Worksheets(sheetObject)