我正在编写一个宏,根据特定的日期范围过滤下载的数据。问题是,下载数据中包含日期的单元格使用的格式为mm/dd/yyyy,Excel将其识别为文本。因此,我编写的任何程序都假设它过滤的是文本而不是日期,这会导致许多问题。
有没有办法让Excel将这种格式识别为日期?我尝试使用自定义数字格式定义日期单元格,但没有成功。如有任何帮助,我们将不胜感激。
请尝试下一个代码。它将转换Date
:中讨论的列
Sub convertTextToDate()
Dim sh As Worksheet, lastR As Long, col As String, arr, arrSp, arrD, i As Long
Set sh = ActiveSheet
col = "A" 'column where the string to be converted in date exists
lastR = sh.cells(sh.rows.count, col).End(xlUp).row
arr = sh.Range(col & "2:" & col & lastR).value
ReDim arrD(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
arrSp = Split(arr(i, 1), "/")
arrD(i, 1) = DateSerial(CLng(arrSp(2)), CLng(arrSp(1)), CLng(arrSp(0)))
Next i
With sh.Range(col & "2:" & col & lastR)
.value = arrD
.NumberFormat = "dd/mm/yyyy"
End With
End Sub
如果你需要一个不同的格式,你应该改变";dd/mm/yyyy";用你想要的任何东西"mm.dd.yy";,例如。。。