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