大家好,我是新来的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]"
unfornately都给出了错误的价值观。谢谢。
回答
可以使用DATEDIF函数来计算两个日期之间的区别:
=DATEDIF(Sheet2!D5,Sheet1!E2,"D")
你将不得不为列复制和修改这个公式,因为这应该用于第一小区的工作。
更新:
使用VBA,你可以用下面的,这应该与你的上述数据集的工作:
Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=DATEDIF(""" & Worksheets("Sheet2").Range("D5") & """,Sheet1!RC[-1],""D"")"
如果公式是从另一片你仍然可以参考的数据当前表格。
使用R1C1与式:
范围( “E2”)FormulaR1C1 = “=今天() - R [0] C [-1]”
添加只是数量。电子表格:
范围( “E2”)值=则DateDiff( “d”,范围( “D2”),现在())
UPDATE:
对于多个值:
Worksheets("Sheet1").Range("E2:E10").FormulaR1C1 = "=Today() - R[0]C[-1]"
感谢您的快速响应......我将有成千上万的行如此循环遍历所有行并分配值是有点耗时的过程。因为我有超过10个这种类型的列。任何其他想法? – 2013-02-26 10:31:09
我改变了类似'Worksheets(“Sheet1”)的公式。Range(“E2:E10”)。FormulaR1C1 =“=”&Worksheets(“Sheet2”)。Range(“D5”)。Value&“ - R [0 ] C [-1]“'但它给出错误的输出。 – 2013-02-26 10:48:31
您是否需要在电子表格上显示值或公式?价值更高效 – InContext 2013-02-26 10:48:51
- 1. VBA-Excel公式参考 - 计算刷新
- 2. Excel公式计算
- 3. Excel公式计算
- 4. excel公式sumif公式不计算
- 5. Excel不计算公式
- 6. PHP Excel计算公式
- 7. Excel公式计算值
- 8. Excel公式:计算调查统计
- 9. Easy VBA公式excel
- 10. Excel公式内VBA
- 11. Excel公式或VBA
- 12. Excel VBA - worksheet.calculate不计算我所有的公式
- 13. Excel不自动计算公式,即通过VBA插入
- 14. 如何使用VBA识别Excel ListObject表的计算列公式
- 15. Excel和VBA:在宏中跳过计算公式
- 16. 使用VBA计算excel单元格中的公式?
- 17. Excel VBA - 以VBA计算
- 18. 从记录集复制Excel计算公式时不计算
- 19. OpenXML SDK:使Excel重新计算公式
- 20. Excel公式调试 - 中位数计算
- 21. Excel公式未使用OfficeOpenXML计算
- 22. Excel公式以h计算时间:mm
- 23. Excel公式计算IF和ETC
- 24. excel中的自动公式计算
- 25. LibreOffice/Excel表格计算公式
- 26. Excel公式来计算表间连接
- 27. Excel公式计算货币兑换率
- 28. C#中的Excel公式计算#
- 29. 计算公式如Excel的jQuery
- 30. Excel VBA公式与变量
谢谢丹纳,它像魅力一样工作。再次感谢:-) – 2013-02-26 10:55:03