以字符串形式报告日期不会转换为长整型



我一直在思考这个问题!我有一个名为repDate的变量,今天它等于作为字符串的"5/1/2020"。我尝试了这个公式将其转换为Long,这样我就可以将其与文件rDtLng = CLng(repDate)中的日期进行比较。我得到错误"类型不匹配",我不确定为什么会有一个。这就是我进行比较的地方——其他的都很好,只是报告日期太长了不想起作用。

'repDate equals "5/1/2020", currently
rDtLng = CLng(repDate)
.
.
.
'Delete charge offs
For w = rwCnt To 3 Step -1
Do While .Cells(w, napbRng.Column).Value2 <= 0 And .Cells(w, apbRng.Column).Value2 <= 0
If .Cells(w, matDtRng.Column).Value2 = "" Then Exit Do
If .Cells(w, matDtRng.Column).Value2 < rDtLng Then
.Rows(w).Delete shift:=xlShiftUp
Else: Exit Do
End If
Loop
Next w

提前感谢!

CLng需要一个数字输入,而文本-看起来像日期"5/1/2020"不是。

您可以使用CDate将其转换为实际日期,然后对其执行数学运算,包括现有的<比较。

不过,如果我了解您的最终目标是什么,您可能会考虑使用带有日期过滤器的Range.AutoFilter,然后删除可见行,而不是当前的Do循环方法。

旁注:你可以CLng(CDate("5/1/2020")),结果是43952,但这是一个不必要的步骤,因为你可以直接用日期来计算。

使用DateValue((函数。

Sub test()
Dim myDate As Long
Dim str As String
str = "5/1/2020"
myDate = DateValue(str)
If myDate = DateSerial(2020, 5, 1) Then
MsgBox "OK"
End If
End Sub

最新更新