我在excel中有一整列1000多个条目,其日期键入为&01; 01/02,' 01/03,' 01/04 ..代表1月2日,1月3日,1月04日等等,因为此人试图保持mm / dd格式,同时保存列宽。
这有点麻烦,因为条目都是字符串而不是日期,我现在需要输入年数才能获得dd / mm / yyyy。
有没有人知道如何做到这一点(当然除了手动更改1000多个条目中的每一个?)
另外,如果你能分享我怎样才能显示dd / mm,同时在excel的条目中保留dd / mm / yyyy,我将不胜感激?
非常感谢你看这个。
答案 0 :(得分:0)
在第1栏中,我们说你有dd / mm。在下一列中,标记DD和每个单元格中的
=DAY(A2)
其中a2是目标细胞。在标有MM的下一列中执行相同操作。创建另一个标记为YYYY的列并放置所需的年份。然后最后一列标记为mm / dd / yyyy并将此公式
=CONCATENATE(D2&"/"&C2&"/"&B2)
长期努力,但会得到你想要的东西。
答案 1 :(得分:0)
由于日期由格式为mm / dd的字符串表示,因此您需要先操作字符串以获取日期格式:
您可以使用以下内容:
<% List<Termin> lista = new ListaTerminow().getTerminy(); %>
(将单元格替换为您要更改的单元格的地址(
完成此操作后显示dd / mm: 选择要格式化的单元格: 右键单击/格式化单元格/自定义 并输入输入框dd / mm
希望这有帮助。
答案 2 :(得分:0)
所以我终于修复了它,这个代码的魅力就成了伎俩!想与你们分享!
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
答案 3 :(得分:0)
虽然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)
。