Vb.net Excel按钮查找产品并将库存更改为0或50

Vb.net Excel按钮查找产品并将库存更改为0或50,vb.net,vba,excel,Vb.net,Vba,Excel,对于我们的电子商务业务,我们有一个大型电子表格,用于管理库存并同步到我们的网站。目前,这是一个完全手动的过程 我想知道如何添加两个按钮来执行以下操作 产品示例 Column A | Column B Product Name | Stock ---------------------+-------------- Product1_Variation1 | 50 Product1_Variation2 | 50 Product1_Variati

对于我们的电子商务业务,我们有一个大型电子表格,用于管理库存并同步到我们的网站。目前,这是一个完全手动的过程

我想知道如何添加两个按钮来执行以下操作

产品示例

Column A             |  Column B
Product Name         |  Stock
---------------------+--------------
Product1_Variation1  |  50
Product1_Variation2  |  50
Product1_Variation3  |  50
Product1_Variation4  |  50
Product2_Variation1  |  50
Product2_Variation2  |  50
Product2_Variation3  |  50
Product2_Variation4  |  50
在另一列中,我将输入我要更新的产品,即在D1列中,我键入Product1。然后有两个按钮

缺货-将搜索A列中文本包含Product1(在D1中)的所有产品,并将库存更改为0

库存-将搜索A列中文本包含Product1(在D1中)的所有产品,并将库存更改为50

我知道这需要一些VB代码,而这正是我需要解决的问题。

编辑

Sub button_1_oos_aw()
    change_stock Range("B2").Text, Range("B3").Text, 0, Range("N2").Text, "OOS", Range("L2").Text
End Sub

Sub button_1_bis_aw()
    change_stock Range("B2").Text, Range("B3").Text, 50, Range("N1").Text, "BIS", Range("L2").Text
End Sub
Sub button_2_oos_vanh()
    change_stock Range("B2").Text, Range("B3").Text, 0, Range("N3").Text, "OOS", Range("L3").Text
End Sub

Sub button_2_bis_vanh()
    change_stock Range("B2").Text, Range("B3").Text, 50, Range("N1").Text, "BIS", Range("L3").Text
End Sub
Sub button_3_oos_unc()
    change_stock Range("B2").Text, Range("B3").Text, 0, Range("N4").Text, "OOS", Range("L4").Text
End Sub

Sub button_3_bis_unc()
    change_stock Range("B2").Text, Range("B3").Text, 50, Range("N1").Text, "BIS", Range("L4").Text
End Sub


Sub change_stock(looking_for, looking_for2, change_to, change_to_message, inorout, stocktype)
    If MsgBox("Are you sure you want to put " + looking_for + " width " + looking_for2 + inorout + " as type " + stocktype, vbYesNo) = vbNo Then Exit Sub

    For y = 20 To Application.WorksheetFunction.CountA(Range("A:A"))
        If InStr(Cells(y, 7), (looking_for)) > 0 And InStr(Cells(y, 12), (looking_for2)) > 0 Then

            Cells(y, 15) = change_to
            Cells(y, 17) = change_to_message
        End If
    Next
End Sub

John,我假设您知道如何添加按钮,并在单击宏时指定要运行的宏?如果是这样的话,下面的代码应该是你想要的

Sub button_1()
    change_stock Range("D1").Text, 0 ' set stock value to zero
End Sub

Sub button_2()
    change_stock Range("D1").Text, 50 ' set stock value to 50
End Sub

Sub change_stock(looking_for, change_to)
    ' Loop to look at each cell in column A
    For y = 2 To Application.WorksheetFunction.CountA(Range("A:A"))
        If Cells(y, 1) = looking_for Then ' <- if cell in column A matches looking_for value
            'change the value
            Cells(y, 2) = change_to
        End If
    Next
End Sub
子按钮_1()
更改库存范围(“D1”)。文本,0'将库存值设置为零
端接头
子按钮_2()
更改库存范围(“D1”)。文本,50'将库存值设置为50
端接头
子更改库存(查找、更改为)
'循环以查看A列中的每个单元格
对于y=2到Application.WorksheetFunction.CountA(范围(“A:A”))

如果单元格(y,1)=正在查找,则“嗨,John”。欢迎来到StackOverflow。如果你想在这里得到一些帮助,你必须表现出你试图自己解决问题。事实上,如果你遇到了问题,你只需要一点点知识就可以做很多事情。首先要做的是录制一个宏。开始录制,然后按照上面描述的操作。然后检查代码并尝试开发它。嗨,伊根-谢谢你的评论和我的道歉。我将确保在将来的任何请求中遵循StackOverflow方法!嗨,克莱尔,谢谢你跳到这个快速和期待帮助我,真的很感激。为了确认,您输入的代码将在A列中搜索包含D1中文本的任何单元格,然后根据按下的按钮将相邻(B)列替换为50或0?当你说差距-我假设这是一个差距,在数据中,也许A10是空白的?为了给出一个更好的例子,a列单元格可能包含例如Product Name Green Length 100cm Width 70cm我可能想搜索Product Name Green Width 70cm最后一个注意-澄清的过程是在D1中输入要搜索的产品,点击“输入”或“输出”按钮,在A1中搜索包含D1的文本,然后更改与0或50相邻的B单元格中的库存单元格。@John-在这种情况下,对于这些示例条目,我需要调整代码。目前,它正在单元格最左侧寻找匹配项,后跟下划线(根据原始示例)。我将编辑我的原始答案,以便单元格必须精确匹配。因此,您可能希望从下拉列表中填充D1和表格。如果您不希望精确匹配,请让程序在D1中包含文本的单元格中运行,您可以将If语句替换为:
If InStr(Cells(y,1),(looking_))>0,然后
再次感谢CLR,我已经用If Instr替换了它,而且效果更好,我已经将代码更新到我在第一篇文章中使用的代码,因为在实践中,单元格范围有点不同。是否可以将And用于if instr语句?我希望在更新C之前匹配A和B中的某些内容(请参阅我更新代码的拙劣尝试!):)