【发布时间】:2018-03-16 03:16:49
【问题描述】:
我在处理我正在处理的 excel 文件时遇到了一个小问题。从一张纸移动到另一张纸时,新的激活纸有时会被锁定,因为我无法进行键盘输入。这似乎是与组合框或列表框交互的结果。
当我第一次单击控件然后尝试更改受保护工作表的未锁定单元格的内容时,也会出现此问题。当工作表不受保护时,不会出现问题。
当我在控件 lostfocus 事件上添加此代码时,这似乎解决了
debug.print selection.locked
ActiveX 控件是否会干扰工作表保护或键盘输入(我仍然可以使用这些单元格的下拉菜单、用鼠标选择它们等) 在不添加这条神秘线的情况下如何解决这个问题的任何线索? 感谢您的帮助!
【问题讨论】:
-
如果是保护问题,会出现错误信息。您是否看到错误消息??
-
没有错误信息:我不能输入单元格,但我可以通过它们的下拉菜单修改它们。如果我运行一些明显不相关的代码(如 debug.print cell.locked),那么我可以输入这些单元格,即使我没有修改任何属性。这对我来说很奇怪......
-
它可能不是一个有数据验证的单元格,而是一个表单控件,或者activeX控件组合框。我对它不是很熟悉,但请尝试右键单击它,看看列表底部是否有一个设置其属性的“格式控件”...
-
我不完全理解您的建议,但是是的,我实际上是在使用组合框从一张纸转到另一张纸。虽然它看起来是独立的,因为我对组合没有任何问题,但问题在于某些单元格不接受通过键盘进行的更改。你能发展你的建议吗?这些控件会“捕获键盘事件”吗?
-
好吧,我把 if selection.locked=false then selection.locked=false 放在每个 activex 的 lostfocus 事件中,问题就不再出现了。奇怪的事情......