【发布时间】:2020-07-03 11:22:41
【问题描述】:
我有一个大的 xls 文件导出,其中的日期列如下所示:
10-Ott-2019
11-Ott-2019
11-Ott-2019
11-Ott-2019
12-Ott-2019
14-Ott-2019
我需要使用宏将所有月份更改为它们的数字:即“Ott”(十月)到它的数字 (10)
Columns("AC:AC").Select
Selection.Replace What:="Ott", Replacement:="10", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, FormulaVersion:= _
xlReplaceFormula2
我希望收到这个
10-10-2019
11-10-2019
11-10-2019
11-10-2019
12-10-2019
14-10-2019
...
但不幸的是,excel 使用某种单元格自动格式将数据拧紧并返回
10-10-2019
10-11-2019
10-11-2019
10-11-2019
10-12-2019
14-10-2019
基本上如果日期小于或等于 12 excel 无论如何都将其视为月份数,它也会忽略系统区域设置的日期为意大利语。
作为旁注,我不需要将其格式化为日期,它可以是一个字符串,我会很好,但我不希望 excel 更改日期。
有什么想法吗?
我也试过这个宏:
Columns("AC:AC").Select
Selection.NumberFormat = "dd-mm-yyyy"
Selection.Replace What:="Ott", Replacement:="10", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, FormulaVersion:= _
xlReplaceFormula2
但结果是一样的……
【问题讨论】:
-
你试过
ReplaceFormat:=True吗? -
是的,它不能解决问题
-
在这里你可以下载我正在尝试修复的 xlsx,除了出现问题的列 AC 之外,它都是空白的(此文件中不包含宏):dropbox.com/s/cpfiaazyi4ud932/date_tofix.xlsx?dl=0