用Excel和VBA查找string?

我有一个电子表格,其中有一些工作表,其中一个是产品库存,一个是材料库存…

我想知道如何让另一个工作表到达我可以查找产品代码的位置,从产品库存中提取说明,并从材料清单中提取所需的材料。 我知道如何在其他语言中做到这一点,但我非常局限于Excel,我不知道如何去做。

说我有Product Lookup:$B$2 = "ps26k417" ,我已经从Product Inventory拉动信息拉动项目说明, Garden Gate Indigo/Linen Natural 26x26 KE Fiber Pillow*但现在我需要弄清楚如何拉从材料清单..

从该产品的描述,我需要从材料清单表中拉出两行。我需要一种方法来提取基于描述的信息,在这个例子中,我需要一行417 Garden Gate Indigo/Linen和行554 Linen Natural/S Backed

是否值得在Excelmacros中深入研究?

如果ProductInventory表单中的每个结果都转换为MaterialInventory表单上的两个条目,则最简单的选项就是使用两个VLOOKUPS公式。

如果你想走下VBA路线,你可能需要下面的代码:

 Public Sub SearchForMaterial(materials() As String) Dim N As Long Dim materialsList As Range Set materialsList = ' Set to the relevant range Dim cell As Range Dim output(UBound(materials) - LBound(materials)) As String Dim outputCount As Long For N = LBound(materials) To UBound(materials) For Each cell In materialsList.Cells If cell.Value = materialsList(N) Then output(outputCount) = cell.Offset(ColumnOffset:= ??) End If Next cell Next N End Sub 

这个代码不是特别有效。 你说你有其他语言的经验,所以希望这应该足以让你开始。

根据你需要做什么,我会做一个适当的结构化Access数据库。 您需要3个表格:产品,材料和BOM(物料清单)。
BOM将有3个字段:ProductId,MaterialId,Quantity。
正因如此,还有一个简单的参数查询,你可以解决你的问题。

我放弃了用Excel和VBA来解决这个问题。 我制作了一个PHP脚本,用于转换“ ProductsMaterials工作表中所需的所有列,将所有这些列都转换为MySQL数据库,并将其全部导出为CSV并制作新的电子表格。

产品表是否有唯一的ID? 材料表是否有与产品表相关的外键?

如果不是…为什么不呢? 会使事情比使用文本值search更容易和更快。

看看这个链接在Excel中使用SQL。 应该很容易,如果你有唯一的ID。