Excel 转换';年月日至年月日

Excel 转换';年月日至年月日,excel,vba,date,Excel,Vba,Date,我在excel中有一整列1000多个条目,日期键入为'01/02,'01/03,'01/04。。。表示Jan 02、Jan 03、Jan 04等,因为此人在保存列宽时试图保持mm/dd格式 这已经变得有些麻烦了,因为条目都是字符串而不是日期,我现在需要输入年份来获得dd/mm/yyyy 是否有人知道如何进行此操作(当然除了手动更改1000多个条目中的每个条目之外?) 另外,如果您能分享我如何在excel中的条目上保留dd/mm/yyyy的同时显示dd/mm,我将不胜感激 非常感谢您的关注。在第1

我在excel中有一整列1000多个条目,日期键入为'01/02,'01/03,'01/04。。。表示Jan 02、Jan 03、Jan 04等,因为此人在保存列宽时试图保持mm/dd格式

这已经变得有些麻烦了,因为条目都是字符串而不是日期,我现在需要输入年份来获得dd/mm/yyyy

是否有人知道如何进行此操作(当然除了手动更改1000多个条目中的每个条目之外?)

另外,如果您能分享我如何在excel中的条目上保留dd/mm/yyyy的同时显示dd/mm,我将不胜感激


非常感谢您的关注。

在第1列中,假设您拥有dd/mm。在下一列中,标记DD,并在每个单元格中放置

=DAY(A2)
其中a2是目标单元。在标有MM的下一列中执行相同操作。创建另一个标有YYYY的列,并输入所需年份。然后最后一列标记为mm/dd/yyyy,并将此公式

=CONCATENATE(D2&"/"&C2&"/"&B2)

长期工作,但会得到您想要的。

由于日期由mm/dd格式的字符串表示,您需要首先操纵字符串以获得日期格式:

您可以使用以下选项:

=DATEVALUE(RIGHT(CELL,2)&"/"&LEFT(CELL,2)) 
(将单元格替换为要更改的单元格地址(

完成此操作以显示dd/mm后: 选择要格式化的单元格,然后: 右键单击/设置单元格格式/自定义 并在输入框中键入dd/mm


希望这能有所帮助。

所以我最终修复了它,这段代码的魅力成功了!想与大家分享

Sub Date_Conversion()
For i = 1 To 393

m = Mid(Cells(i, 1), 1, 2)
D = Right(Cells(i, 1), 2)

Cells(i, 5).NumberFormat = "mm/dd;@"
Cells(i, 5) = DateSerial(2015, m, D)

Next

End Sub

虽然393行并不是过多的数据,但您应该发现批量处理要比在行中循环并处理每个单元格快得多

Sub Date_Conversion()
    With ActiveSheet
        With .Columns(1)
            .TextToColumns Destination:=.Offset(0, 4), DataType:=xlFixedWidth, FieldInfo:=Array(0, 3)
            .Offset(0, 4).NumberFormat = "mm/dd;;;[red]@"
        End With
    End With
End Sub
由于没有为任何单元格提供年份,因此默认为当前年份。未处理的任何文本值将以红色字体格式化并左对齐


如果您想简单地替换A列中的现有数据,请将
.Offset(0,4)
替换为
.Cells(1)

您尝试了什么?我建议将分隔符和年份与字符串连接起来,然后将其转换为数字(日期)。您可以自定义格式,使其以您想要的方式显示。例如,对于此任务来说,这是一个很好的指导。谢谢。这非常有用,为我指明了正确的方向!我正在测试一个小插件,以节省时间,但这确实解决了问题。