我目前有一系列单元格显示价格。我需要最终用户指定他们想要看到的折扣,然后按下一个命令按钮,将其应用于列表价格。
我已经创建了命令按钮。我理解用于选择范围的代码,并使用特定值填充它,但我仍然坚持下一个代码。在我看来,它应该简单:
Range (C27:39; C41:C42; C44:45) * Discount% (C127)
我尝试在工作簿的另一部分中复制并粘贴范围中的值,应用折扣,然后将这些值粘贴回原始范围单元格,但后来我丢失了SUMIFS公式,并且如果原始的那样需要那些公式模型的输入改变 - 在另一个选项卡上。
截图:
答案 0 :(得分:0)
这样的事情应该有效
Dim rng As Range
Dim cel As Range
With ActiveSheet
Set rng = .Range("C27:C39,C41:C42,C44:C45")
For Each cel In rng
if lcase(left(range(C126),1)) = "y"
if instr(cel.formula,"C127") = 0 then cel.formula = cel.formula & "* C127"
else
cel.formula = split(cel.formula,"*")(0)
End if
Next
End With
编辑:我没有意识到细胞中有一个公式。编辑将在单元格中放置一个新公式。它保留旧的并添加“* C127”
编辑2:现在代码将查看C126并查看是否应该应用折扣,如果是,它将添加到公式中,否则它将删除“* C127”
编辑3:添加了一项检查,以便不会双倍地应用折扣。
编辑4:现在我想到了,为什么不在C137中为所有三个可能的调整器添加一个if语句:
= If(left(C126,1) = "y",C127,1) * If(left(C130,1) = "y",C131,1) * If(left(C134,1) = "y",C135,1)
然后在您要调整的单元格中,只需将“* C137”添加到现有公式中,您将永远不需要使用vba或更改公式。