如果工作表中使用了窗体控件,例如复选框、单选按钮等,如果这个工作表受保护,你仍然可以单击这些控件,但如果该控件的链接单元格被锁定,则会弹出一条警告消息,如下图1所示。本文使用了一个技巧,用于阻止用户单击这些控件。技巧是,在这些控件上面放置一个不可见的文本框。首先,确保工作表撤销保护。然后切换到VBE,在一个标准模块中输入下面的代码:'使用不可见文本框覆盖当前工作表中每个窗体控件
'以避免在受保护工作表中单击这些控件时弹出消息
Sub CoverControl()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoFormControl Then
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
shp.Left, shp.Top, shp.Width, shp.Height).Select
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Line.Visible = msoFalse
End If
Next shp
Set shp = Nothing
End Sub
运行代码,将在控件上面放置一个不可见的文本框。然后,再次设置工作表保护。此时,你再单击这些控件,不会有任何反映。'移除当前工作表中不可见文本框
Sub RemoveCover()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
With shp
If .Type = msoTextBox Then
If .TextFrame2.TextRange.Characters.Text = "" Then .Delete
End If
End With
Next shp
Set shp = Nothing
End Sub
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。