Excel 作为字符串的报告日期不会转换为长
在这个问题上我一直在绞尽脑汁!我有一个名为repDate的变量,它今天作为字符串等于5/1/2020。我尝试了这个公式,将其转换为Long,以便将其与文件rDtLng=CLngrepDate中的日期进行比较。我得到的错误类型不匹配,我不知道为什么会有一个。这就是我正在做的比较其余的工作很好,只是报告日期,只要不想工作Excel 作为字符串的报告日期不会转换为长,excel,vba,Excel,Vba,在这个问题上我一直在绞尽脑汁!我有一个名为repDate的变量,它今天作为字符串等于5/1/2020。我尝试了这个公式,将其转换为Long,以便将其与文件rDtLng=CLngrepDate中的日期进行比较。我得到的错误类型不匹配,我不知道为什么会有一个。这就是我正在做的比较其余的工作很好,只是报告日期,只要不想工作 'repDate equals "5/1/2020", currently rDtLng = CLng(repDate) . . . 'Delete charge offs F
'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
提前谢谢 使用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
CLng需要一个数字输入,而看起来像日期5/1/2020的文本则不是
您可以使用CDate将其转换为实际日期,然后对其执行数学运算,包括现有的Why Long和not date?使用CDate。如果你想的话,你可以用CLng。。。但我不明白你为什么要这么做。数学也适用于约会。。。我看得越多,就越觉得可以将Range.AutoFilter与日期筛选器一起使用,然后删除可见行。CDate之所以这样做是出于某种原因。谢谢@BigBen-你想把你的评论变成一个答案,这样你就可以获得更多的声誉!