【问题标题】:Show message box if value not found如果未找到值,则显示消息框
【发布时间】:2018-09-11 20:00:59
【问题描述】:

一位出色的用户已经帮助我开发了一个代码来在工作表“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

在这之后还有其他操作,但它们工作正常

【问题讨论】:

  • 你能显示不工作的代码吗?我没有看到任何Else
  • 把 Then (temp.offset....) 后面的部分放在下一行,然后使用 Else 就可以了。
  • 嗨@ImranMalek,是的,这适用于消息框。您能帮我完成 a) 部分吗?
  • @scamparella 应该是 temp.Offset(0, 22) = Sheets("Home").range("G12").value
  • 哇!非常感谢@ImranMalek!你在你选择的天堂里有一席之地;-)

标签: excel vba


【解决方案1】:

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

试试这个:

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 的参数 - 所以请确保我写的内容与您需要的内容一致。始终先尝试测试数据!

【讨论】:

  • 嗨@Dylan L,是的,这很有效,谢谢 - 你能帮我完成 a) 部分吗?
  • 为您添加了一个对您有帮助的编辑!
【解决方案2】:

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

将您的代码置于以下格式中,看看是否可行。

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

Else
...
End If

【讨论】:

    猜你喜欢
    • 2012-05-31
    • 2014-09-21
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2013-12-25
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多