当另一个单元格=“TRUE”时将计算应用于单元格的值

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

我正在为销售电子设备的零售商制作电子表格。 我有多张表单,包括客户详细信息,产品详细信息(包括库存和重新订购function),“订单处理屏幕”和“订单历史logging屏幕”。 在这个订单处理屏幕上,用户能够从列表中select他们的名字,从列表中select他们想要的产品,并且点击注册他们的订单的button。

当用户点击注册他们的订单时,它完全出现在订单历史表中,并且在每次点击之后都不会被replace。 每当产品被购买时,我都被困在如何减less1。

我目前的解决方法是,当订单历史清单上出现订单时(即点击macros后,细节从订单处理屏幕拉出并放入订单历史清单),产品名称将与所有产品进行比较产品列表中的名称,当它达到匹配时显示“TRUE”。 就像是:

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

当一个新的订单进来时,公式检查它的名字,并在产品清单上find它的库存号,并把它减1。当我的TRUE / FALSE行时,我不知道如何减less1显示TRUE。

编辑:这里有一些情况陪伴它的照片:

产品列表

订单购买清单

我的build议是使用Worksheet_Change事件为包含表示产品已更改的单元格的Worksheet_Change 。 您的函数查看产品列表为TRUE / FALSE,然后将产品计数减1。 (不要忘记将标志重置为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