如何在Excel中为特定工作簿禁用“单元格拖放”

我有一个电子表格,其中(简化)用户将信息输入到A列,该信息用于B列中的公式.B1使用A1中的信息,B2使用A2中的信息等.

工作表被“保护”以仅允许用户选择和更改A列中的未锁定单元格.它们不应该能够更改工作表的格式或结构.然而,即使纸张受到保护,它们也能够通过单击单元格框架并将其拖动到另一个单元格上来“移动”单元格内容.

如果他们将A1移动到A2,B1现在使用A2中的信息,B2给出参考错误.

我想运行代码,当用户“移动”一个单元格时,会触发一个宏来撤消移动.

有没有人知道一种方法来检测何时以编程方式移动单元格,或者对我的问题有不同的解决方案?除了微软没有用表格保护忽视这个问题:D

最佳答案

Does anyone know of a way to detect when a cell is moved programmatically, or have a different solution to my issue? Other than Microsoft not overlooking this issue with sheet protection 😀

我有另一种解决方案.

禁用此工作簿中的拖放功能.棘手的部分是这是一个应用程序级别设置,因此您需要根据哪个工作簿处于活动状态来切换启用/禁用.

这不是初学者级别的VBA,但我在THIS ANSWER中记录了它,并提供了一个包含所有示例代码和XLSM文件的链接.模块.

点赞