作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在处理一个工作表,该工作表应使用不同的用户表单来执行任务和计算。用户表单通过按钮调用。
因此用户的所有输入都应该通过这些用户表单进行;实际的工作表应仅包含只读的结果(对于用户)。
问题:
以下代码与保护工作表存在相同的问题。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsEmpty(Target) Then
Target.Clear
MsgBox "SomeAlertMSG"
End If
End Sub
有什么建议如何在不使用自制 bool 标志的情况下完成此任务吗?
最佳答案
调用另一个子程序来为您写入范围并处理事件,如下所示:
Sub WriteToCell(ByVal cell As Excel.Range, ByVal cellValue)
Application.EnableEvents = False
cell.Value = cellValue
Application.EnableEvents = True
End Sub
然后在您的用户表单中,当您想向某个范围写入内容时,只需编写:
WriteToCell Sheets("someSheet").Range("A1"), "I can stay here!"
关于Excel VBA : How to only allow macro to make cell input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925103/
我是一名优秀的程序员,十分优秀!