在这种情况下如何避免使用VBA进行循环引用?

时间:2018-03-10 21:06:06

标签: excel vba

我输入了很多行数据。有时我会在A栏输入净额,有时我会在C栏中输入净额。净额+增值税=毛额。在所有情况下,我都希望公式自动为我计算缺失的数字。

我有三列(ABC) A列代表净值,B代表名义增值税,C代表G Gross。 我在B中有一个公式,如果是增值税,或者B VAT否则为空白。

目前,如果我在A中添加任何内容,则会计算增值税且C为空白:

  A    B    C
  100  20  

同样,如果我在C中放入任何东西,增值税会被计算,但A是空白的:

A    B    C
    20    120

我想要的是下面的内容,无论是给出的A,还是C。

A    B    C
100  20   120

我正在尝试计算净总数,并给出单行总净值。

注意,B列受到保护,我有一个公式,可以自动计算增值税,无论是先将数字输入C还是先输入A:

=IF(E2>0,E2*VATRATE,IF(G2>0,G2-(G2/(1+VATRATE)),""))

理想情况下,使用VBA,如果A给定则为cal C,如果C给出计算A。

1 个答案:

答案 0 :(得分:0)

实际上你根本不需要VBA。使用这些公式:

  • A2 in =IF(NOT(ISFORMULA(A2)),A2*VATRATE,IF(NOT(ISFORMULA(C2)),C2-(C2/(1+VATRATE)),0))
  • B2中的增值税 =A2+B2
  • C2 {{1}}
  • 的总收入

诀窍是确定是否手动输入了数字。一旦你知道了,就可以使用if语句来避免循环引用。

根据需要复制多行。