能否设定某列的值(比如,逻辑列)不能手动修改,但可以用代码修改?
http://www.foxtable.com/webhelp/topics/0605.htm
在该表的PrepareEdit事件中输入:
If e.Col.Name = "某逻辑列" Then
e.Cancel = True
End If
伟大的版主,请问为什么会这样?设定的cancel对代码为什么不起作用?
1.起初,我的问题是:
能否设定某列的值(比如,逻辑列)不能手动修改,但可以用代码修改?
2.您回答给出了一段代码。
3.我在追问:
为什么您的代码能解决问题1?
因为按道理来说,无论是手动更改,还是代码更改,都应该会触发对应的事件,比如prepareedit,或者datacokchanging。
但为什么设定的cancel对“代码更改”无法阻拦,但对“手动更改”可以阻拦?原理是什么?
[此贴子已经被作者于2023/10/18 20:52:57编辑过]
注意看帮助每个事件的说明呗。有些事件比如PrepareEdit事件只有在单元格操作才会触发。
不过datacokchanging设定的cancel对“代码更改”一样可以阻拦,不要想当然,还是要仔细理解帮助的说明