我使用从数据库中提取的一些数据。在一列中,我有一组格式为dd.mm.yyyy的数据。我正在使用下面的行尝试将这些值转换为dd / mm / yyyy并格式化为日期。
.Range(Columns(j), Columns(j)).Replace What:=".", Replacement:="/"
.Range(Columns(j), Columns(j)).NumberFormat = "dd/mm/yyyy"
执行代码后,所有替换都完成了,并且单元格被格式化为日期,但是一些值保持对齐,一些值是右对齐的。当我在此列中激活过滤器时,某些值每年分组不正确(下面的屏幕截图)。
当我转到一个似乎不起作用的值时(例如,屏幕截图的第一个13/01/2015),它会保持对齐状态。然后,如果我在单元格中双击并按Enter键,则单元格将右对齐。
我在这些单元格中搜索了额外的字符(例如空格),但没有找到任何内容。
您对此问题有任何想法吗?
p.s:抱歉我的英语不好,我来自巴西(:
答案 0 :(得分:1)
可以使用文本到列将日期从一种格式转换为另一种格式。手动,您可以选择范围,单击文本到列>下一个>下一个>选择“日期”并指定 SOURCE 数据所在的日,月,年的顺序,然后单击“确定”。
当然,使用VBA也可以做到这一点。启动宏录制器,按照上述步骤研究生成的代码。
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar _
:="", FieldInfo:=Array(1, 4), TrailingMinusNumbers:=True
答案 1 :(得分:0)
通常,当您将日期格式化为文本时会发生这种情况。我有一个技巧可以用来杀死那些格式化问题:
DATA
TEXT TO COLUMN
Delimited
,然后点击下一步