Excel录制的日期分隔符查找替换VBA宏失效问题求助
解决Excel日期分隔符替换的VBA问题
问题根源:Excel里的真日期本质是数值,你看到的dd-mm-yyyy中的-是单元格数字格式的一部分,并非单元格存储的实际内容。录制的Replace方法是针对单元格内容做替换,自然找不到目标-,所以没效果;而Ctrl+H能生效是因为它会自动识别格式层面的替换逻辑。
给你两个实用的VBA解决方案:
方案1:直接修改数字格式(推荐)
如果你的日期是可参与计算的真日期(数值型),直接修改单元格格式就能实现显示效果,还能保留日期的数值属性:
Selection.NumberFormat = "dd.mm.yyyy"
方案2:转成文本型日期(无需日期属性时用)
要是你需要把日期转为带点分隔的文本格式,用这段代码先转文本再替换:
' 先将日期转为dd-mm-yyyy格式的文本 Selection.NumberFormat = "@" Selection.Value = Evaluate("TEXT(" & Selection.Address & ",""dd-mm-yyyy"")") ' 替换分隔符 Selection.Replace What:="-", Replacement:=".", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False
内容的提问来源于stack exchange,提问作者SCM
相关产品推荐
相关产品推荐

