一个了不起的用户已经帮助我开发了一个代码,以便在工作表“需求”列B中查找该值,该值是用户已在工作表“ Home” G11(参考编号)中输入的值,然后输入当前日期和时间到表格“ Reqs”中的单元格中,从找到的值开始沿着21列前进。
现在,我想同时修改代码
a)将表格“ Home” G12中的值输入到表格“ Reqs”中与刚刚输入日期相邻的单元格中(沿着同一行的一列)。
和 b)如果找不到输入的参考编号,请显示一个消息框(在“首页”中),显示“找不到编号”
对于b)我试图简单地添加一个“ Else:msgbox“未找到编号”,但这会出现错误“ Else if 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
此后还有其他操作,但是它们可以正常工作
答案 0 :(得分:0)
我不完全确定确切的错误或看到您尝试的错误,但这可能归结为语法格式。
尝试一下:
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的参数-因此,请确保我编写的内容与所需内容一致。始终先尝试测试数据!
答案 1 :(得分:0)
您需要在代码中的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