【问题标题】:How to remove values in spreadsheet B based on values in spreadsheet A?如何根据电子表格 A 中的值删除电子表格 B 中的值?
【发布时间】:2015-04-09 19:03:19
【问题描述】:

我正在使用 VB 中的 excel 宏来自动化业务流程,除了一个部分之外,我已经完成了所有工作。我有一个清单表,我想在运行宏时更新它。它会在订单文件中搜索零件编号,将这些零件编号与库存表进行比较,然后根据订单表中找到的值删除库存表中的库存数量。这些在两个单独的工作簿中。这是它的外观示例:

Spreadsheet A - Order Sheet: 

A         B            C   
Part #:   Description: Quantity
123456    Item 1       1
1234567   Item 2       1
12345678  Item 3       1

Spreadsheet B - Inventory Sheet: 

A         B            C   
Part #:   Description: Quantity
123456    Item 1       580
1234567   Item 2       790
12345678  Item 3       578

因此,该程序将根据电子表格 A - C 列和 A 列中的值减去电子表格 B - C 列中的值

在订单表中,即使客户订购了多件商品,它也会将每次购买显示为单独的商品,因此该程序只需要一次删除一个数量。

我对这种类型的 Excel 自动化比较陌生,因此我们将不胜感激任何输入。我一直在研究 Vlookup,但据我了解,它只查找信息并显示现有值。

【问题讨论】:

  • 到目前为止必须尝试哪些代码?
  • 我目前还没有为这部分尝试任何代码,因为我不确定从哪里开始。我一直在研究不同的功能,但正在寻找一些见解。 @D_Zab

标签: windows excel vba automation


【解决方案1】:

如果想法是每次运行宏时从“库存”中删除“订单”,那么正确的做法应该是,换句话说,对于“订单”中的每一行,搜索相应的对象进入库存并减去数量

在代码中,就像在文字中一样简单:

For j = 2 To Sheets("Orders").Range("A2").End(xlDown).Row
    For k = 2 To Sheets("Inventory").Range("A2").End(xlDown).Row
        If Sheets("Orders").Range("A" & j).Value = Sheets("Inventory").Range("A" & k).Value Then '<-- when the object is found
            Sheets("Inventory").Range("C" & k).Value = Sheets("Inventory").Range("C" & k).Value - Sheets("Orders").Range("C" & j).Value '<-- subtract order's value
            Exit For '<-- you don't need to loop any further after having found the object
        End If
    Next k
Next j

【讨论】:

  • 感谢您的回复。我很抱歉我还没有回过头来。查看代码,看起来这些项目的顺序并不重要是吗?并感谢您对我的措辞的更正。这确实更有意义
  • @ReaganKirby 你说得对,顺序无关紧要。
【解决方案2】:

按 alt+f11

右键单击左侧的项目并插入一个模块。

在鬃毛代码窗格中输入:

 Public Sub UpdateInventory
    'place some code like
    for n1=0 to 1000
        for n2=0 to 100
InventoryItemCode= Sheets("Inventory").range("A1").offset(n1,0).value
OrderCode=Sheets("Orders").range("A1").offset(n2,0).value
          If InventoryItemCode=OrderCode  then
           'etc....
          End if
        Next n2
    NEXT n1
    End sub

请参阅 google 进行故障排除

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 2015-04-19
    • 2020-07-20
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    相关资源
    最近更新 更多