关于Excel vba编程中的Worksheet_Change事件
比如我在工作表Sheet1的A列到F列中输入的数据限制为1-9,否则弹出一个消息框提示重新输入.相关的代码放在Sheet1的Worksheet_Change事件中,正常输...
比如我在工作表Sheet1的A列到F列中输入的数据限制为1-9,否则弹出一个消息框提示重新输入.相关的代码放在Sheet1的Worksheet_Change事件中,正常输入的情况下没问题,但是有一点就是比如A1为8,A2为9,如果选中这两个单元格,鼠标位于右下角向下拖的时候,默认操作是按序列填充,由于填充的数据不满足条件,所以这时会发生错误.请问如何避免这种错误的出现?谢谢!
展开
1个回答
追问
谢谢你的回答,不过我提这个问题的初衷是想使的VBA程序更健全,而不是实现这种数据有效性的检查.重点是VBA而非其它!
追答
用代码可以这样
Sub my1Validation()
With Range("A:f").Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="9"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
End Sub
或者
Sub my2Validation()
With Range("A:f").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="1,2,3,4,5,6,7,8,9"
End With
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |