我正在寻找以下问题的解决方案,目前无法解决:
在Sheet1中,我有产品订单。 A列是产品代码,B列是订购数量。
在Sheet2中,客户选择了几个变量,这些变量以所选变量的连接标签结尾,例如:A1 - 客户可以从a,b或c中选择(通过下拉菜单进行值验证),A2 - 客户可以选择1,2或3和A3,客户可以选择红色,蓝色或绿色。然后在值A4中,客户选择所需的数量。在一个隐藏的单元格中,让我们说A5我们连接变量的选择并获得标签a2blue,例如,我们需要找到来自表1的WHICH产品具有标签a2blue,并将其数量更改为5,例如。
现在回到sheet1,我想创建一个带有产品可能标签的C列。
例如,productX可以有标签“a2blue,a3blue,b1blue”。我想创建一个公式,搜索工作表1中的哪个产品与客户的标签匹配并添加数量。假设我们在表1中发现,在第9行,产品代码为ProductX,在C列中有标签“a2blue,a3blue,b1blue”(注意,产品应该能够有多个标签,因此无法进行精确搜索,只需搜索文本是否包含在内)。对于此产品,我想将数量更改为5。
当然这也可以通过VBA来解决,但在VBA我很新,所以需要额外的支持。
图1:例如,在B4和B5,客户选择混凝土和沥青。稍后将在sheet2上生成系统不同部分所需的一些“标签”。
图2:工作表2的快照。单元格B7显示,根据客户对sheet1的选择,作为结束锚项目,我们需要一个具有“Concretebitumenend”标签的产品。数量已在C7中计算。 基于标签Concretebitumenend(Sheet2单元格B7中的标签,根据C7需要2个),当我单击Sheet1上的Calculate时,它应该找到Sheet1列H中哪个产品在列出的标签中具有该标签。例如,在这种情况下,H29不适合,因为它没有标签Concretebitumenend,所以应找到右行,然后它应该在col E中获得所需的数量。
感谢您的支持!
答案 0 :(得分:0)
找到解决方案:
Sub proof()
'
' proof Macro
'
n2 = 26
n1 = 489
For i = 29 To 489
Cells(i, 5) = 0
Next i
For i = 1 To n2
For j = 29 To n1
a = UCase(Sheets("sheet2").Cells(i, 2))
b = UCase(Sheets("sheet1").Cells(j, 8))
If a = "" Then GoTo 10
If (a <> "" And b <> "") And InStr(b, a) Then
'Stop
Sheets("sheet1").Cells(j, 5) = Sheets("sheet1").Cells(j, 5) + Sheets("sheet2").Cells(i, 3)
End If
Next j
10 Next i
'
End Sub