excel - 出现消息框后清除VBA Excel文本框

标签 excel vba userform

我的代码在“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/

相关文章:

vba - 将搜索从一个单元格更改为整个工作表

vba - Excel VBA - 使用 VBA 创建新的格式化工作簿

excel - 有没有办法在单个单元格中使用下划线、粗体和斜体?

vba - 检查用户表单是否打开

excel - 如何在输入过程中覆盖文本框中的建议文本?

excel - 按计算字段对 Excel 数据透视表进行排序

excel - 将细胞彼此连接起来;让单元格更新链接的单元格,反之亦然

VBA:下标超出范围错误

vba - Excel VBA 仅显示每个系列最大​​值的标签

excel - 控制源连接的单元格不断丢失其公式