【发布时间】:2020-10-26 23:20:06
【问题描述】:
我有一个 CSV 文件,其中有一列美国格式的日期(我的区域格式是英国)。 如果我在 excel 中打开 CSV 文件,然后手动保存文件,它会稍微修改日期条目(如果被识别为有效的英国日期),但会以相同的格式保存它们。 但是,如果我使用 ActiveWorkbook.Save 使用宏保存工作簿,则日期会反转(即被识别为有效英国日期的日期)。
这到底是怎么回事? 如何使用宏保存并避免这种情况?
示例输入文件:
Date
06/02/2020
06/30/2020
07/13/2020
07/22/2020
07/31/2020
08/11/2020
08/11/2020
08/31/2020
09/22/2020
09/29/2020
手动保存后:
Date
6/02/2020
06/30/2020
07/13/2020
07/22/2020
07/31/2020
8/11/2020
8/11/2020
08/31/2020
09/22/2020
09/29/2020
用宏保存后:
Date
2/6/2020
06/30/2020
07/13/2020
07/22/2020
07/31/2020
11/8/2020
11/8/2020
08/31/2020
09/22/2020
09/29/2020
解决方案: Ron 的回答中指出的解决方案是用 SaveAs 替换 Save 行,将 Local 变量设置为 True,因此它不使用 VBA 美国区域默认值。
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, Local:=True
Application.DisplayAlerts = True
【问题讨论】: