vba - 日期比较问题 VBA
问题描述
我正在尝试比较 vba 脚本中的日期。我相信主要问题是我的格式,但我不知道如何解决它。
Sub Rem9()
Dim i As Long
Dim lr As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
wsName = ws.Name
lr = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
FirstDateRead = CDate("1, 1,2018") 'Initialize the first Day of the year as the last day
For i = 1 To lr
Debug.Print FirstDateRead
Debug.Print ws.Cells(i, 1).Value
If FirstDateRead > ws.Cells(i, 1).Value Then
ws.Cells(i, 3).Value = 121325
End If
Next i
End Sub
根据我的输出,First Date Read 永远不会大于我要提取的值,这适用于所有情况。我在这里包含了我正在运行的脚本中的 debug.print 示例,以显示日期格式。此外,我想确认我从中提取的值确实是 datevaluse,因为当我通过 IsDate() 函数运行它们时,它返回 True。
如果我调用的值的日期格式是交换年份和日期,则另一个问题是。有谁知道如何解决这个问题。当我使用格式函数时,它将日期返回为。
解决方案
尝试使用该DateDiff
功能:
Sub dateDifference()
Dim d1 As Date, d2 As Date
d1 = CDate("1, 2,2018")
d2 = Range("A1").Value ' insert a date in A1 to test
Debug.Print DateDiff("d", d1, d2) ' first parameter set to days
End Sub
编辑#1
用来Format
比较苹果和苹果,可以这么说:
d2 = Format(Range("A1").Value, "dd/mm/yyyy")
推荐阅读
- c++ - 如何使类成员变量与函数模板的返回类型相同?
- apache-spark - 错误:用户没有初始化火花上下文
- angular - Angular:从后端检索用户数据后显示个人资料图片
- ssis - 从具有隐藏行的 xls 模板读取时,SSIS 错误 DTS_E_INDUCEDTRANSFORMFAILUREONERROR
- python - 返回列表字典中的值
- r - 使用 R 中的列表中的样本运行线性回归
- python - 体验 (XP) 不适用于所有用户 JSON Discord.PY
- rust - 如何将 `aarch64-none-elf` 添加到我的 Rust 工具链?
- linux - 管道输入命令
- javascript - FireBase 使用过滤器