我已经找到了找到我所在位置的答案,但现在卡住了!我是VBA的初学者。
我有一份工作手册,列出了我们为客户制作的几百份订单。
订单详情位于第一张名为“In Progress
”的表格上,第三张名为“StyleData
”的表格详细介绍了每种产品,例如其成分,设计参考,SKU等。
目前,我的代码根据进度表中活动单元格中的6位数样式代码搜索数据表中的A列,然后转到该单元格。我已经放了一个MsgBox
纯粹是为了暂停代码,所以我知道它到底在哪里。
在数据表上找到样式代码后我想要它做的是在H列的同一行返回一个值,最好是用户可以选择和复制的格式,然后它将返回到原始单元格在宏的开头。
代码如下:
Sub get_composition()
Dim item_no As String
Dim data_sheet As Worksheet
Dim found_item As Range
Set Rng = ActiveCell
item_no = ActiveCell.Value
Set data_sheet = Sheets("StyleData")
If Trim(item_no) <> "" Then
With Sheets("StyleData").Range("A:A")
Set found_item = .Find(What:=item_no, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not found_item Is Nothing Then
Application.Goto found_item, True
Else
MsgBox "Nothing found"
End If
End With
End If
MsgBox "Return to Original Cell"
Application.Goto Rng
End Sub
答案 0 :(得分:0)
如果我理解你想要的东西:
您到达单元格“found_item”并想要从同一行返回一个值。 如果是这样,您可以在“found_item”上使用Offset方法
found_item.Offset()允许您从当前范围导航 https://msdn.microsoft.com/en-us/library/office/ff840060.aspx
如果您在A列上,则found_item.Offset(,1)将返回同一行但B列的范围