Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 作为字符串的报告日期不会转换为长_Excel_Vba - Fatal编程技术网

Excel 作为字符串的报告日期不会转换为长

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的变量,它今天作为字符串等于5/1/2020。我尝试了这个公式,将其转换为Long,以便将其与文件rDtLng=CLngrepDate中的日期进行比较。我得到的错误类型不匹配,我不知道为什么会有一个。这就是我正在做的比较其余的工作很好,只是报告日期,只要不想工作

'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-你想把你的评论变成一个答案,这样你就可以获得更多的声誉!