对受保护的工作表中的列和行进行分组和取消分组

时间:2018-09-03 06:28:13

标签: excel vba

我有一个很大的电子表格,可以保护并且仍然可以在列和行上使用“分组”和“取消分组”功能。

以下是使用“切换”按钮对列进行分组/取消分组的代码。但是,我有数百行数据输入和计算,这些行分为10个部分。每个节中的行数可能会根据数据的性质而增加/减少。我尝试对下面的行使用“分组”功能,但是在使用“切换按钮”后,行的分组消失了。

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then
    ActiveSheet.Unprotect
    ActiveWindow.Zoom = 80
    Columns("E:G").Select     ' this is the range of the columns
    Selection.EntireColumn.Hidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFiltering:=True

Else
    ActiveSheet.Unprotect
    ActiveWindow.Zoom = 80
    Columns("E:G").Select     ' this is the range of the columns
    Selection.Columns.ClearOutline
    Selection.Columns.Group
    Selection.EntireColumn.Hidden = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFiltering:=True
End If

1 个答案:

答案 0 :(得分:0)

您可以将工作表中的行和列分组,然后将以下代码添加到工作簿中:

Private Sub Workbook_Open()
    Tabelle1.Protect UserInterfaceOnly:=True, AllowFormattingRows:=True
    Tabelle1.EnableOutlining = True
End Sub

这使用户可以在受保护的工作表中使用grou / ungroup-buttons。