大家好,我是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]"
,但两者都给出了错误的值。感谢。
答案 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]"