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
Excel 行相加后的公式_Excel_Vba - Fatal编程技术网

Excel 行相加后的公式

Excel 行相加后的公式,excel,vba,Excel,Vba,VBA新手,请帮助。我道歉。我没有把自己说清楚。让我再试一次 我的销售代表将每次通话都记录在通话表中。他们每周拜访50-60人;有些人一周看一次以上,有些人一年只看几次。在这个调用表上有4列;通话日期、客户、数字日期和自上次通话后的天数。此工作表可能有数百行,其中许多是在不同日期调用的重复客户 我已经编写了可以根据需要消除重复项的代码(工作正常)。使用NextRow=\添加新调用(也可以正常工作)$C$2设置为TODAY() C列中的公式是$C10=$A10(C列的格式为数字)。D列是自上次呼叫

VBA新手,请帮助。我道歉。我没有把自己说清楚。让我再试一次

我的销售代表将每次通话都记录在通话表中。他们每周拜访50-60人;有些人一周看一次以上,有些人一年只看几次。在这个调用表上有4列;通话日期、客户、数字日期和自上次通话后的天数。此工作表可能有数百行,其中许多是在不同日期调用的重复客户

我已经编写了可以根据需要消除重复项的代码(工作正常)。使用NextRow=\添加新调用(也可以正常工作)<代码>$C$2设置为
TODAY()

C列中的公式是
$C10=$A10
(C列的格式为数字)。D列是自上次呼叫以来的天数<代码>$C$2-$C10等。简单且工作正常

问题是假设我有50行(所有不同的客户)按升序排序,并添加了一个新客户,键是new。我需要C和D中的公式在添加新客户时自动下拉一行。我可以将公式向下拖一段时间,在我排序之前一切都将正常工作,然后我的数据是排序的底部,因为a列中没有日期的所有行都将在C和D中生成0。我的成品应该是一系列不同的客户(没有重复);与顶部最长时间未被呼叫的客户联系


我希望这是一个更好的解释。我可以编写忽略0的代码吗?

我将在这里做一点冒险,说也许你的公式需要重构

比如说。如果目标是计算自上次给客户打电话以来的天数,那么这样一个简单的公式就行了 =(最大(C:C)-今天() 这将得到C列中的最大值,并从中减去今天的值。 如果您想获得D列中与此条目对应的值,那么VLOOKUP()就是您的朋友。您可以这样使用它: =VLOOKUP(最大值(C:C),C:D,2,假)

希望这有帮助。 顺便说一句,用VBA解决问题的最好方法,最简单的方法是创建一个命名范围。然后可以将$C$2-$D11替换为命名范围的名称。最简单的方法是说:

Range(Range(C2),Range(C2).End(xlDown)).Name = NAmeOfYourRange
这实际上只是获取单元格C2,向下移动到最后一个非空单元格,并将该区域命名为YourRange


希望这有帮助:)

请原谅,我无法理解;是否要更新列C和D中所有单元格中的公式?或者它只是一个单元格,在其中您有公式,并且希望包含新添加的行。