OLEObjects文本框能否设置为可见但禁止用户编辑?
解决方案
方法1:禁用文本框控件(最便捷)
直接将该OLE文本框的Enabled属性设为False即可,禁用后的控件无法被选中、也不能接收任何输入,不会影响你用它遮挡按钮的原有逻辑,原有显示隐藏代码无需调整,仅需在显示遮挡层时新增一行赋值代码即可:
' 显示遮挡层时禁用控件,禁止用户输入 ActiveSheet.OLEObjects("HideButtons").Enabled = False ActiveSheet.OLEObjects("HideButtons").Visible = True ' 密码验证通过后直接隐藏即可,无需额外操作 ActiveSheet.OLEObjects("HideButtons").Visible = False
你也可以直接在开发工具的控件属性面板中,将HideButtons控件的Enabled属性默认设为False,不用每次显示时重复赋值。
注:如果担心禁用控件后出现默认灰色禁用样式,和你设置的工作表背景不匹配,可以改用方法2,不会改变控件的外观效果。
方法2:锁定控件+限制输入长度
如果不需要禁用控件,仅要拦截输入,可以同时设置两个控件属性,既保留原本的外观效果,又完全禁止用户输入:
- 将文本框的
Locked属性设为True,锁定控件内容 - 将文本框的
MaxLength属性设为0,限制最多可输入字符数为0
对应设置代码如下:
ActiveSheet.OLEObjects("HideButtons").Object.Locked = True ActiveSheet.OLEObjects("HideButtons").Object.MaxLength = 0
注意事项
由于你当前工作表已设置保护,修改控件属性前需要先撤销工作表保护,修改完成后再重新开启保护,避免出现权限报错。
内容的提问来源于stack exchange,提问作者AndyRoo119
相关产品推荐
相关产品推荐

