我的代码应该检查每一列“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/