excel - 如何忽略没有用户输入?

标签 excel vba

我的代码应该检查每一列“C”单元格是否有任何输入在 TextBox2 中,然后,如果找到,使用在将列“D”相交单元格内容调整为“IN”中找到的行。

除了一个异常(exception),所有这一切都如愿发生。如果我在 textbox2 中没有输入的情况下单击命令按钮“Check IN”,它将“D”列中的第一个空单元格设置为“IN”。

Private Sub CheckIn_Click()

Dim FoundRange As Range
Dim Status As Range
    Set FoundRange = Columns("C").Find(What:=TextBox2.Text, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

    If Not FoundRange Is Nothing Then
    Set Status = FoundRange.Offset(ColumnOffset:=1)
       Status.Value = "IN"
       TextBox2 = ""
       ThisWorkbook.Save
    Else
        Status.Value = ""
        TextBox2 = ""
        TextBox1.SetFocus
        MsgBox "Not Found"
    End If

End Sub

我试图做的是在第 13 行使用第 9 行的相同脚本,但使用空值,这样即使完成某些操作,单元格也是空的。另一方面,在没有 TextBox2 输入的情况下运行代码后,我在第 13 行收到此错误:“对象变量或未设置 block 变量”。

我不明白没有设置什么变量。我所要做的就是减轻如果在没有输入的情况下按下按钮会发生什么。

最佳答案

先测试:

Private Sub CheckIn_Click()

    Dim FoundRange As Range
    Dim Status As Range

    If TextBox2.Text = "" Then
        MsgBox "Test Skipped"
    Else
        Set FoundRange = Columns("C").Find(What:=TextBox2.Text, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

        If Not FoundRange Is Nothing Then
           Set Status = FoundRange.Offset(ColumnOffset:=1)
           Status.Value = "IN"
           TextBox2 = ""
           ThisWorkbook.Save
        Else
            Status.Value = ""
            TextBox2 = ""
            TextBox1.SetFocus
            MsgBox "Not Found"
        End If
    End If

End Sub

关于excel - 如何忽略没有用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54793091/

相关文章:

vba - 同一个文件在两台不同的计算机上怎么会得到不同的结果呢?

vba - 当我运行 Excel VBA 宏时无法使用复制和粘贴

vba - 使用 VTable hacking 使用标准模块中的方法重载 COM 类方法

vba - Excel VBA : Way to find the value of a cell with multiple criteria

VBA 是使用 Find 方法更快地搜索单元格还是遍历每个单元格?

excel - 在excel中复制粘贴操作时禁用格式

excel - 重播宏更改选项卡颜色时下标超出范围

vba - 更改文本格式的所有 vlookup 格式

arrays - 如何遍历二维数组的特定行?

python - 使用 win32com 和 python 复制和粘贴隔离