我的代码在“A”列中查找一个 ID,如果它匹配,然后抛出一个消息,这样用户就不能重新输入具有相同 ID 的另一个人。我想要一些简单有效的东西,所以这很有效。问题是当我清除该值时,即使文本框已清除,它也会再次弹出相同的消息框。有什么办法可以解决这个问题?
Private Sub TextBox1_Change()
Dim controlrow
Dim lookrow
controlrow = Me.TextBox1.Value
Set lookrow = Hoja4.Range("A:A").Find(What:=controlrow, LookIn:=xlValues)
If Me.TextBox1.Value = lookrow.Value Then
MsgBox "El ID ya existe"
Me.TextBox1.Value = ""
End If
End Sub
最佳答案
修改您的代码以首先检查文本框是否为空白。
正如@JvdV 所提到的,您还需要针对永远找不到您正在搜索的值的可能性进行编码。发生这种情况时,您会因为尝试比较 Something
而出错。至Nothing
Private Sub Textbox1_Change()
If Me.TextBox1.Value = "" Then
Exit Sub
End If
Dim controlrow
Dim lookrow As Range
controlrow = Me.TextBox1.Value
Set lookrow = Hoja4.Range("A:A").Find(controlrow, LookIn:=xlValues)
If Not lookrow Is Nothing Then
If Me.TextBox1.Value = lookrow.Value Then
MsgBox "El ID ya existe"
Me.TextBox1.Value = ""
End If
End If
End Sub
关于excel - 出现消息框后清除VBA Excel文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193347/