我有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提示。