在excel中双击一个单元格会发生什么?
我想知道这一点,因为我必须控制在我的 excel 查看器中的单元格中输入数据,在这种情况下,除非他双击它,否则不允许用户在单元格中输入任何内容。
我使用以下代码来保护活动工作表在不双击的情况下输入数据:
myActiveWorksheet.Protect("password", Type.Missing, true, true, Type.Missing, true,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
false, false, true);
它工作正常,做我想要的。
但是问题发生在用户双击单元格时。我在 ActiveWorkbook 的 SheetBeforeDoubleClick 事件处理程序中编写了以下代码以取消保护工作表,以便用户可以在单元格中输入他的数据:
myActiveWorksheet.Unprotect("password");
target.Locked = false;
以及 SheetChange 事件处理程序中的以下代码以再次保护它:
target.Locked = true;
myActiveWorksheet.Protect("password", Type.Missing, true, true, Type.Missing, true,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
false, false, true);
但是,第二个保护代码(我的意思是 SheetChange 事件处理程序中的那个)不能正常工作,因此用户只需单击一下就可以输入每个单元格。
我对原因有两个猜测:
1)在双击excel的过程中发生了一些事情,导致工作表不受保护。
2)SheetChange 事件处理程序的目标参数不指向更改的单元格。