所以基本上我想做的是从电子表格中提取日期并检查日期是否在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。
但是,这无关紧要,因为它无论如何都已转换为日期。有人知道我要去哪里了吗?
答案 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。