Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 计算单元格范围的折扣_Vba_Excel - Fatal编程技术网

Vba 计算单元格范围的折扣

Vba 计算单元格范围的折扣,vba,excel,Vba,Excel,我现在有一系列的单元格显示标价。我需要最终用户指定他们希望看到的折扣,然后按一个命令按钮,将其应用于价目表 范围C27:39;C41:C42;C44:45 折扣%C127-最终用户填充此 将折扣%应用于指定范围内的当前结果 -不干扰范围单元格中当前的SUMIFS公式。 我已经创建了命令按钮。我理解选择一个范围并用一个特定值填充它的代码,但我仍停留在下一个代码上。在我看来,它应该简单到: Range (C27:39; C41:C42; C44:45) * Discount% (C127) 我试图

我现在有一系列的单元格显示标价。我需要最终用户指定他们希望看到的折扣,然后按一个命令按钮,将其应用于价目表

范围C27:39;C41:C42;C44:45 折扣%C127-最终用户填充此 将折扣%应用于指定范围内的当前结果 -不干扰范围单元格中当前的SUMIFS公式。 我已经创建了命令按钮。我理解选择一个范围并用一个特定值填充它的代码,但我仍停留在下一个代码上。在我看来,它应该简单到:

Range (C27:39; C41:C42; C44:45) * Discount% (C127)
我试图在工作簿的另一部分复制并粘贴范围中的值,应用折扣,然后将这些值粘贴回原始范围单元格,但随后我丢失了SUMIFS公式,需要这些公式,以防模型的原始输入发生更改-在另一个选项卡上

截图:


像这样的东西应该有用

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或更改公式。

为什么不能在D27中使用=C27*C127并隐藏C列?因为我需要在C27中填充结果…这是一个交易摘要,所以我不需要任何其他列。只需要他们能够轻松地点击一个按钮,并显示新的收入和利润在指定的折扣。。。VBA有点过分,但您可以将数据存储到变量中,进行计算,然后将它们放回需要的单元格中。午餐,对不起。如果你不能阅读正在运行的代码,请不要在工作中使用VBA。除了恶意代码的可能性之外,如果您无法更改/解释文档中出现的代码,那么您将面临失败。哇,很高兴知道有恶意的人会这么做。我理解代码的各个部分,只是不知道如何编写它们或使用什么语言。在这一点上,我只想构建出我试图避免的大量IF-THEN语句。我想可能有一个更简单的方法,我可以教自己一种新的技能。这是销售人员将要使用的通行费,我能为他们做的越容易越好。是的……我注意到,一旦我运行了它。我很欣赏你所提供的语言,并且理解它们是如何结合在一起的。也许我需要将数据复制并粘贴到新的工作表中,以便销售人员查看输出。在这一点上,我只想构建出我试图避免的大量IF-THEN语句。构建。@SarahAnn我相信社区可以想出更快、更省时的方法,但您需要显示数据样本和所需的输出。excel工作表的屏幕截图可以吗?还是有其他方法?@SarahAnn屏幕截图可以。但是你没有足够的点数将图片直接发布到你的原始帖子中,只需将它们放在一个站点上,然后从原始帖子链接到该站点。你已经将链接添加到屏幕截图了吗