【问题标题】:Applying a calculation to a cell's value when another cell = "TRUE"当另一个单元格 = "TRUE" 时将计算应用于单元格的值
【发布时间】:2016-01-19 18:05:31
【问题描述】:

我正在做一些课程来完成一个高级电子表格。

我正在为一家销售电子设备的零售商创建一个电子表格。我设置了多张表格,其中包含客户详细信息、产品详细信息(具有库存和重新订购功能)、“订单处理屏幕”和“订单历史屏幕”。在这个订单处理屏幕上,用户可以从列表中选择他们的名字,从列表中选择他们想要的产品,然后单击一个按钮来注册他们的订单。

当用户点击注册他们的订单时,它会完全显示在订单历史记录表中,并且不会在每次点击后被替换。每次购买该产品时,我都被困在如何将库存减少 1。

我目前的解决方案是,当订单出现在订单历史列表中时(在单击宏并将详细信息从订单处理屏幕中拉出并放入订单历史列表之后),将产品名称与产品列表中的所有产品名称,当匹配时显示“TRUE”。比如:

IF <TRUE/FALSE cell> = "TRUE"
-1 from <stock number cell>

当一个新订单进来时,公式会检查它的名称,在产品清单上,它会找到它的库存编号并将其减 1。当我的 TRUE 时,我不知道如何将数字减 1 /FALSE 行显示 TRUE。

编辑:以下是一些伴随它的情况图片:

Product List

Order purchase list

【问题讨论】:

  • 看看类似 offset('prods'!$a$1,match(prod,prod col,0),col num of stock).value = offset('prods'!$a$1, match(prod,prod col,0),col num of stock).value-1
  • 一个更好的解决方案可能是先有一个实物股票,然后是这个价值减去订单的浮动股票?就像一个公式

标签: vba excel spreadsheet


【解决方案1】:

我的建议是对包含指示产品已更改的单元格的工作表使用Worksheet_Change 事件。您的函数查看 TRUE/FALSE 的产品列表,然后将产品计数减一。 (不要忘记将标志重置为 FALSE!)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    '--- example assumes flag indicating product has changed in column B, rows 2-100
    '    and the product count is on the same row as the flag in column G
    Dim productChangeFlag As Variant
    Dim ws As Worksheet

    Set ws = Target.Parent
    If Intersect(Target, ws.Range("B2:B100")) Is Nothing Or IsEmpty(Target) Then Exit Sub

    Application.EnableEvents = False
    For Each productChangeFlag In Target
        If WorksheetFunction.IsLogical(productChangeFlag) And productChangeFlag = True Then
            ws.Cells(productChangeFlag.Row, 7).Value = ws.Cells(productChangeFlag.Row, 7).Value - 1
            ws.Cells(productChangeFlag.Row, productChangeFlag.Column).Value = False
        End If
    Next productChangeFlag
    Application.EnableEvents = True

End Sub

【讨论】:

    猜你喜欢
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多