我有一张表格,其中日期列输入为 dd/mm/yyyy,例如 15/12/2014,但是 excel 不将其视为日期,因此我无法将任何日期函数应用于此列。
有没有办法将其转换为 excel 日期 (mm/dd/yyyy),而无需使用繁琐的子字符串 left$,mid$) 方法。提前致谢。
答案1
Excel 将查看您的区域设置并查看日期的格式,只有匹配时,它才会自动将您的单元格格式化为日期。
因此,如果您已将区域设置设为使用 dd-mm-yyyy 格式的日期(请注意 -),则使用 / 的输出将被忽略。
此外,单元格的日期前面可能有一个 '。此字符基本上会指示单元格始终为字符串。这是 Excel 在导入过程中可以执行的操作。
我要做的第一件事是将区域设置更改为美国日期,以便它具有 / 并尝试再次加载电子表格。选择整个列,选择右键单击->设置单元格格式,然后将其设置为日期现在应该可以工作了。
一旦成功将其转换为日期并且保存了工作表,您就可以改回区域设置。
答案2
我设计了以下 VBA 代码并运行它,但仍在寻找更简单的解决方法:
Function ConvertddmmyyDate(instring As String) As Date
On Error GoTo err
Dim dateArray() As String
dateArray = Split(instring, "/")
Dim dt As Date
Dim day As Integer
Dim month As Integer
Dim year As Integer
day = Int(dateArray(0))
month = Int(dateArray(1))
year = Int(dateArray(2))
If year < 100 Then 'For yy formats
year = year + 2000
End If
dt = DateSerial(year, month, day)
ConvertddmmyyDate = dt
Exit Function
err:
ConvertddmmyyDate = "01/01/1900"
End Function