如果找不到值,则显示消息框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果找不到值,则显示消息框相关的知识,希望对你有一定的参考价值。

一个出色的用户已经帮助我开发了一个代码,用于查找工作表“Reqs”列B,用户输入到“Home”G11(参考编号)表中的值,然后将当前日期和时间输入到工作表“Reqs”中的单元格,从找到的值开始的21列。

现在我想修改代码,两者

a)将工作表“Home”G12中的值输入到刚刚输入日期(沿着同一行的一列)的工作表“Reqs”中的单元格中。

和b)如果找不到输入参考号,则显示一个msgbox(在表单“Home”中),表示“未找到号码”

对于b)我试图简单地添加一个“没有找到”的Else:msgbox“,但这会给出错误,”Else without If“,但我已经有了一个If ...

非常感谢

Sub CloseJob()
    Dim temp As Range
    Set temp = 
Sheets("Reqs").Columns("B").Find(What:=Sheets("Home").Range("G11").Value, _
                       LookIn:=xlFormulas, LookAt:=xlWhole, _
                       SearchOrder:=xlByRows, _
                       SearchDirection:=xlNext, MatchCase:=True)
    'if found
    If Not temp Is Nothing Then temp.Offset(0, 21) = Date

此后还有其他操作,但它们可以正常工作

答案

不知道确切的错误,或者看到你尝试的东西我不能完全确定,但它可能归结为语法的格式化。

尝试一下:

If Not temp Is Nothing Then 
    temp.Offset(0, 21) = Date
Else
    MsgBox("Number Not Found")
End If

如果您仍然有错误,请告诉我们错误是什么,我们可以从那里开始

对于你的第一个问题继续尝试这样的事情:

Sub Test()
Worksheets("Home").Cells(12, 7).Copy

'You mentioned 21 columns along from the FoundValue, so I added a variable to the column argument of the cells function
'that you can change as needed

Worksheets("Reqs").Cells(12, FoundValue + 21).Paste

End Sub

请记住,Cells函数接受Rows,Columns的参数 - 因此请确保我写的内容与您需要的内容一致。始终先尝试测试数据!

另一答案

您需要在代码之后将部分分开然后在您的代码中,当前它结束的IF语句不是您想要的。

将您的代码放在以下格式中,看看是否有效。

If Not temp Is Nothing Then 
  temp.Offset(0, 21) = Date
  temp.Offset(0, 22) = Sheets("Home").range("G12").value 

Else
...
End If

以上是关于如果找不到值,则显示消息框的主要内容,如果未能解决你的问题,请参考以下文章

如果 odbc_num_rows == 为空,则显示消息

如果组合框为空,则 Excel 宏中的警告消息

如果输入后未找到数据,则显示角度消息

如果输入框超过字符限制,则显示跨度标签消息

通知用户 Dash 中的无效输入

如果在 Laravel 5.1 中找不到路由,则显示 404 页面