确定日期是否在某个范围内Excel VBA

时间:2019-10-05 07:51:22

标签: excel vba

所以基本上我想做的是从电子表格中提取日期并检查日期是否在01/07/2019和31/07/2019之间,但是它似乎也没有用始于八月。

因此,基本上我的程序所做的是从电子表格中提取数据,我试图查找7月1日至7月31日之间的所有值,并将其保存在变量chantalJulyTotalDemanded中。

Dim julyStart As Date 
Dim julyFinish As Date 

julyStart = CDate("01/07/2019")
julyFinish = CDate("31/07/2019")

If CDate(dataSheet.Cells(x, 12)) >= CDate(julyStart) And CDate(dataSheet.Cells(x, 12)) <= CDate(JulyFinish) Then
    chantalJulyTotalDemanded = chantalJulyTotalDemanded + dataSheet.Cells(x, 10)

上面的方法有效,但是它也可以从8月的日期中获取信息。

因此它从电子表格中获取的日期的格式为1/07/2019。
但是,这无关紧要,因为它无论如何都已转换为日期。有人知道我要去哪里了吗?

1 个答案:

答案 0 :(得分:0)

缺少答案和更多建议:

对于VBA代码中的日期常量,请使用#

julyStart = #1/7/2019#

我不确定VBA如何确定这是1月7日还是7月1日。但是我建议您做的是中断VBA并将鼠标移到var上以查看显示的内容。

在循环中为单元格值创建一个变量:

Dim cellDate As Date:  cellDate = dataSheet.Cells(x, 12)

现在处于中断模式,您可以检查变量以查看它们是否符合您的期望。

由于julyStart已经是一个日期,因此无需在CDate(julyStart)上运行CDate。

我假设您在单元格中的日期值为实际的日期数字值。如果是这样,您应该不会有任何问题。但是,如果它是一个字符串值,那么您需要确定CDate是否在执行正确的转换,例如1/7/2019对7/1/2019。