VBA excel特定单元格input并添加警告消息

嗨,我是新的VBA编码,请裸露在我身边。

我有一个工作表,我正在尝试input新的产品详细信息。

一列需要5位数字。 我想要我的代码做的是一旦input这个数字,如果它不是一个完全的5位数字,发送一个警告消息框,要求检查工作号码。

如果条目是<> 5个数字并且包含字母,则应该应用警告消息。 然而,无论什么条目,我仍然希望细胞接受条目。

谢谢你的帮助!

在你的情况下,我会使用Excel Data Validation

在这里输入图像说明

简单地改变范围在9999到100000之间,所以它将是一个5位数字。 或者您可以使用标准的Excel公式来validation条目。

在数据validation对话框中,您还可以定义警报或错误含义。

在这里输入图像说明

有关更多信息,请参阅数据validation的Excel参考

这是为B列编码的。

将以下内容放在工作表代码区域中:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range, r As Range, s As String, L As Long Dim addy As String Set rng = Intersect(Range("B:B"), Target) If rng Is Nothing Then Exit Sub For Each r In rng s = r.Text L = Len(s) addy = r.Address(0, 0) If L <> 5 Then MsgBox "Please check " & addy Else For i = 1 To 5 If Not IsNumeric(Mid(s, i, 1)) Then MsgBox "Please check " & addy End If Next i End If Next r End Sub 

因为它是工作表代码,所以安装和自动使用非常简单:

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

如果您有任何疑问,请先在试用工作表上尝试。

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. closuresVBE窗口

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件macros(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

macros必须启用这个工作!