![]() |
1
82
试用使用
如果userInterfaceOnly参数设置为true,则VBA代码可以修改受保护的单元格。 |
![]() |
2
16
通过执行这些操作,可以通过代码修改工作表。
在代码中,这将是:
这个 弱点 此方法的一个特点是,如果代码被中断,错误处理无法捕获代码,工作表可能会处于未保护状态。 代码可能是 改进 通过采取这些行动
这样做的代码是:
此代码更新了工作表上的保护,但_userinterfaceOnly_设置为true。这允许VBA代码修改工作表,同时保护工作表不受用户通过UI输入的影响,即使执行被中断。 此设置是 迷路的 当工作簿关闭并重新打开时。工作表保护仍保持不变。 因此,在任何试图修改工作表的过程开始时都需要包含“重新保护”代码,或者在打开工作簿时只运行一次。 |
![]() |
3
3
完成后重新保护:
编辑:看起来这个解决方法可能已经解决了迪尔的直接问题,但是对于后来遇到这个问题/答案的人来说,我的答案的第一部分是错误的,正如乔在下面指出的。你 可以 保护工作表仅可由VBA编辑,但似乎只有在代码中调用“worksheet.protect”时才能设置“userinterfaceonly”选项。 |
![]() |
4
2
一个基本但简单易懂的答案:
|
![]() |
5
1
作为解决方案,您可以创建 隐藏工作表 ,它将保存更改的值。可见、受保护工作表上的单元格应使用简单公式显示隐藏工作表中的值。 你将能够 通过隐藏工作表更改显示的值 ,而您的用户将无法对其进行编辑。 |
![]() |
6
0
我选择了要锁定在Sheet1中的单元格,并将建议的代码放在open_Workbook()函数中,工作得很有魅力。
|