从另一个工作表中查找代码并从同一行返回信息

时间:2015-07-24 07:57:06

标签: excel vba

我已经找到了找到我所在位置的答案,但现在卡住了!我是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

1 个答案:

答案 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列的范围