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