3

在此处输入图像描述


大家好,我是vba的新手,请帮助我。我有一张如图所示的桌子。天数列是一个公式列。公式很简单,就是Actual DateDate的区别。但是实际日期出现在另一个工作表 (Sheet2) 的 Range("D5") 处。如何以编程方式分配此公式。我试过了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]"不幸的是,两者都给出了错误的值。谢谢。

4

2 回答 2

1

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

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

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

更新:

使用 VBA,您可以使用以下内容,它应该适用于您的上述数据集:

Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=DATEDIF(""" & Worksheets("Sheet2").Range("D5") & """,Sheet1!RC[-1],""D"")"
于 2013-02-26T10:14:33.117 回答
1

如果公式来自另一张表,您仍然可以引用当前表中的数据。

使用 R1C1 和公式:

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

仅将数字添加到电子表格中:

Range("E2").Value = DateDiff("d", Range("D2"), Now())

更新:

对于多个值:

Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=Today() - R[0]C[-1]"
于 2013-02-26T10:18:41.247 回答