检查数据是由用户输入还是由宏[VBA]输入

时间:2017-11-24 07:06:41

标签: vba excel-vba validation excel

在我的VBA项目中,我有不同的按钮(带有自定义UI编辑器的功能区栏)启动Subs,它将数据输入到Cells中。我想阻止用户自己将数据输入到单元格,因为这可能会破坏例程。有没有办法验证数据是手动输入还是自动输入?我想到了一个控制表,如果我在一个函数中,我将变量设置为1,并在worksheet_change子中检查这个变量。无论如何,我认为这可能是一种危险的方式,因为Sub总是会崩溃,然后值仍然是1,并且不能输入任何值。

1 个答案:

答案 0 :(得分:1)

我建议您只需使用$selectedPostings = Posting::where('city', '=', 'New York')->get(); $otherPostings = Posting::whereNotIn('city', ['New York'])->get(); 功能锁定用户输入的工作表。

您必须使用此功能的Protect属性来实现您的目标。

UserInterfaceOnly

这将保护您的工作表免受用户输入的影响,并让VBA更改工作表中的值。

编辑 - 停用提醒

您在评论中询问是否可以在用户选择这些单元格时禁用警报。以下代码应该可以解决问题。

Sheets(“sheetname”).Protect Password:="Secret", UserInterFaceOnly:=True