我在excel中具有值为3/09/2018
的单元格A1。我可以将其转换为VBA中的日期,如下所示。
startdate = Format(#3/09/2018#, "Short Date")
但是我无法使它与变量一起使用,例如:
value1= ActiveSheet.Range("A1").Value
final_value = "#" & value1 & "#"
startdate= Format(final_value,"Short Date")
如何使用final_value
变量来实现此目的?我正在尝试以这种方式使用过滤器来获得结果:
ActiveSheet.ListObjects("Table1").Range.AutoFilter =1, Criteria1=">="startdate
答案 0 :(得分:2)
假设startdate被声明为Date变量,则可以使用:
startdate = ActiveSheet.Range("A1").Value
现在您已经澄清了自己在做什么,我将使用Double
进行自动过滤(尤其是可能存在国际问题的情况),或者如果您对时间部分不感兴趣,则使用Long:
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1=">=" & ActiveSheet.Range("A1").Value2
或:
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=1, Criteria1=">=" & CLng(ActiveSheet.Range("A1").Value2)
答案 1 :(得分:1)
为什么要麻烦var为日期类型?在VBA中要做的所有事情就是43168(如果您使用DMY并认为VBA是DMY友好的,则为43346)。
dim startDate as long
startDate = ActiveSheet.Range("A1").Value2