我有一个包含日期数据的列的 excel 文件。我希望用户输入他们选择的日期,然后我想创建一个新列,列出两个日期之间的天数差异。我拥有的宏正在工作,但我有几个问题,我想让它变得更好。MWE 小数据文件的链接在这里。
用户输入的日期是 2013 年 9 月 30 日,我存储在 H20 中
宏:
Sub Date_play()
Dim x As Date
Dim x2 As Date
Dim y As Variant
x = InputBox(Prompt:="Please enter the Folder Report Date. The following formats are acceptable: 4 1 2013 or April 1 2013 or 4/1/2013")
x2 = Range("E2")
y = DateDiff("D", x2, x)
MsgBox y
'Used DateDiff above and it works but I don't know how to use it to fill a column or indeed a cell.
Range("H20").FormulaR1C1 = x
Range("H1").FormulaR1C1 = "Diff"
Range("H2").Formula = "=DATEDIF(E2,$H$20,""D"")"
Range("H2").AutoFill Destination:=Range("H2:H17")
Range("H2:H17").Select
End Sub
现在,我可以在不将用户输入日期存储在特定单元格中的情况下做到这一点吗?我更愿意在公式中使用变量“x”,但它对我不起作用。我必须将用户输入存储在 H20 中,然后使用 $H$20。
函数 Datedif 和过程 DateDiff 有什么区别?我可以在我的宏中使用 DateDiff 过程,但我不知道如何使用它来填写我的列。一种方法比另一种更好吗?
有没有更好的方法向现有工作表添加列,其中列包括一些涉及工作表上现有数据和一些用户输入的计算?接下来我要做大量更复杂的计算。
谢谢