VBA取单元格的值然后转换下格式

单元格的值为2013-10-1
想用VBA取值,然后变成2013年10月1日

如 A列为日期,转换后填入B列或A列

Private Sub CommandButton1_Click()

For i = 1 To Cells(65536, 1).End(xlUp).Row

    rq = Cells(i, 1)

       Cells(i, 2) = Year(rq) & "年" & Month(rq) & "月" & Day(rq) & "日"  '输出到B列

       'Cells(i, 1) = Year(rq) & "年" & Month(rq) & "月" & Day(rq) & "日" '如果输出到A列用此行

    Next

End Sub

追问

我A列是个截取身份证号的公式。A列如果是日期你这个方法更快捷。也谢啦。

追答

是19890211这样的吗?
如果是19890211这样的
Private Sub CommandButton1_Click()
For i = 1 To Cells(65536, 1).End(xlUp).Row
rq = Cells(i, 1)
Cells(i, 2) = left(rq,4) & "年" & mid(rq,3,2) & "月" & right(rq,2) & "日" '输出到B列
Next
End Sub

是19890211这样的吗?
如果是19890211这样的
Private Sub CommandButton1_Click()
For i = 1 To Cells(65536, 1).End(xlUp).Row
rq = Cells(i, 1)
Cells(i, 2) = left(rq,4) & "年" & mid(rq,3,2) & "月" & right(rq,2) & "日" '输出到B列
Next
End Sub

追问

R6是身份证号
是公式=(MID(R6,7,4)&"-"&MID(R6,11,2)&"-"&MID(R6,13,2))
已经用分割数组那个方式解决了,谢谢你拉。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-01
Sub t()
'Cells(1, 1) = "2013-10-1"
    MsgBox Cells(1, 1)
    a = Split(Cells(1, 1), "-")'分割成数组
    b = a(0) & "年" & a(1) & "月" & a(2) & "日" '连接成字符串
    MsgBox b
End Sub

本回答被提问者采纳