excel - 日期格式问题,某些日期格式不正确

标签 excel vba

我有一个问题:

我在 dd.mm.yyyy 中有一个日期列格式,我替换 .-并使用
循环:

Cells(i, 2).Value = Format(Cells(i, 2).Value, "yyyy-mm-dd")

因为我需要做yyyy-mm-dd .

它工作得很好,但是一些日期的格式不正确,比如从 4 月 5 日到 5 月 4 日。

最佳答案

听起来您当前的单元格值存储为恰好看起来像日期的字符串。

您的区域设置将默认为日期格式 mm-dd-yyyy .因此,如果日期不明确(如 4 月 5 日),Excel 将默认采用该解释。

您应该真正将日期存储为真实日期,并使用格式来根据需要显示它们。有点像

If Cells(i, 2).Value Like "##-##-####" Then
    s = Cells(i, 2).Value
    Cells(i, 2).Value = DateSerial(Mid$(s, 7, 4), Mid$(s, 4, 2), Left(s, 2))
    Cells(i, 2).NumberFormat = "yyyy-mm-dd"
End If

如果您坚持将它们存储为字符串,请使用
If Cells(i, 2).Value Like "##-##-####" Then
    s = Cells(i, 2).Value
    Cells(i, 2).NumberFormat = Format$(DateSerial(Mid$(s, 7, 4), Mid$(s, 4, 2), Left(s, 2)), "yyyy-mm-dd")
End If

关于excel - 日期格式问题,某些日期格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57605197/

相关文章:

EXCEL 2010 MACRO 连接包含不同行数的单元格

Excel VBA 自动筛选除三个之外的所有内容

matlab - 如何仅提取和绘制数组的最小和最大峰值,-图形分析-使用 Matlab 或 excel

vba - 从 excel 打开 word doc 并将所需信息复制到 excel 文件

excel - 如何检查值是否仅存在于一个或其他范围内,否则会出错?

java - 为什么 Apache poi 的 Workbook.close() 方法将内容写入输入文件?

sql - Excel 2010 中的 PowerView

vba - 使用 FollowHyperlink 打开打开的 PDF 后将其关闭

VBA用循环合并单元格

excel - 按 MS Excel 中的列排序 - VBA