禁用其他工作表

时间:2016-10-31 15:23:48

标签: excel vba excel-vba

我有2张主页和子表。

MainSheet有一个下拉是/否。如果用户选择“是”,则应启用子表单元格,如果他选择“否则应禁用单元格”。

此外,如果用户选择“否”并尝试单击禁用的单元格,则应显示msg“单击确定以启用单元格”,并且下拉列表中的值应在主页上更改为“是”。

主页上的功能

If Intersect(Target, Range("G11")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Select Case (Target.Value)
        Case "YES"
            Call Notify
        Case "NO"
            Call Notify
            Exit Sub
    End Select
Application.EnableEvents = True

在功能下面,我使用了一个模块。

Public Sub Notify()
    If ActiveSheet.ProtectContents And Not mMessageDisplayed Then
        mMessageDisplayed = True
        If MsgBox("Cells are locked on current sheet, press ok to Unlock", vbOKCancel + vbInformation) = vbOK Then
            ThisWorkbook.Worksheets("MAIN").Range("G11") = "YES"
            With ThisWorkbook.Sheets("Subsheet")
                .Range("E13:E14").Locked = False
            End With
        Else
            ThisWorkbook.Worksheets("MAIN").Range("G11") = "NO"
             With ThisWorkbook.Sheets("Subsheet")
                .Range("E13:E14").Locked = True
            End With
        End If
    End If
End Sub

SubSheet上的函数

Private mMessageDisplayed As Boolean
Private Sub Worksheet_Activate()
    Notify
End Sub

功能正常。唯一的问题是......即使用户已选择“是”,我也会收到消息提示。意图是只有在他选择了否并进入子表并尝试编辑它时才获取msg提示。

0 个答案:

没有答案