用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脚本,用于转换“ Products
和Materials
工作表中所需的所有列,将所有这些列都转换为MySQL数据库,并将其全部导出为CSV并制作新的电子表格。
产品表是否有唯一的ID? 材料表是否有与产品表相关的外键?
如果不是…为什么不呢? 会使事情比使用文本值search更容易和更快。
看看这个链接在Excel中使用SQL。 应该很容易,如果你有唯一的ID。