Vba excel Formula Computation?

时间:2013-02-26 10:07:09

标签: excel vba

enter image description here


大家好,我是vba的新手,请帮助我。我有一张如图所示的桌子。 Days列是公式列。公式很简单,它是实际日期日期的区别。但实际日期出现在范围(“D5”)的另一张表(Sheet2)中。如何以编程方式分配此公式。我尝试使用Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=" & Worksheets("Sheet2").Range("D5").Value & "-Sheet1!RC[-1]"Worksheets("Sheet1").Range("I6:I10").FormulaR1C1 = "=Sheet2!R[5]C[4]Sheet1!RC[-1]",但两者都给出了错误的值。感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用DATEDIF函数计算两个日期之间的差异:

=DATEDIF(Sheet2!D5,Sheet1!E2,"D")

您必须复制并修改该列的此公式,因为这应适用于第一个单元格。

更新:

使用VBA,您可以使用以下内容,它可以与您的上述数据集一起使用:

Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=DATEDIF(""" & Worksheets("Sheet2").Range("D5") & """,Sheet1!RC[-1],""D"")"

答案 1 :(得分:1)

如果公式来自其他工作表,您仍然可以引用当前工作表中的数据。

使用R1C1公式:

范围(“E2”)。FormulaR1C1 =“=今天() - R [0] C [-1]”

只在电子表格中添加数字:

范围(“E2”)。值= DateDiff(“d”,范围(“D2”),现在())

更新:

对于多个值:

Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=Today() - R[0]C[-1]"