当前位置:编程学习 > VB >>

如何将时间转换为字符格式

在excel中,需要将A列的时间如2009-08-06转换为字符串格式,存放在B列,但显示仍然是2009-08-06格式,一个月30天都要转换;如2009-08-06 转换为2009-08-06;2009-08-16转换为2009-08-16; --------------------编程问答-------------------- 用Format函数,比如
Dim s1 As String, s2 As String
S1 = "2009.09.08"
s2 = Format(s1, "YYYY-MM-DD") --------------------编程问答-------------------- Format函数. --------------------编程问答--------------------
Private Sub Form_Load()
Dim d As Date
Dim s As String
d = #8/6/2009#
s = CStr(d)
MsgBox s
End Sub
--------------------编程问答-------------------- =TEXT(A1,"yyyy-MM-dd") --------------------编程问答-------------------- 如果你的A列里就只是含"-"或含"/"的日期形式,那么cstr(#……#)就可以了;
如果含".",那就用format吧 --------------------编程问答--------------------
楼主的 A 列是日期时间型数据(= Double),什么点杠斜都不包含。不要把内存数据和显示内容混为一谈。

可以把 Excel 用作 Jet Engine 的外部数据库来处理。

假定你已经在 Excel 上建立了连接,且 Excel 表的首行有字段名(datDate, strDate):

Update [Sheet1$] Set strDate = Format(datDate, 'YYYY-MM-DD')
--------------------编程问答-------------------- 各位大侠:
我的文件有60行需要变化,没有表头,时间格式有2009-6-10,有2009-6-6; 即长短字符数不一样;我的程序如下:

For C = 2 To 60
cells(C, 20) = CStr(cells(C, 19))
next

不行,出错:subscrap out of range
更改为:
For C = 2 To 60
cells(C, 20) = format(cells(C, 19))
next

出错:sub or function not defined

如何更正 --------------------编程问答-------------------- Sub test()
    Dim c As Integer
    
    Columns(2).NumberFormatLocal = "@"
    
    For c = 2 To 60
        Cells(c, 2) = CStr(Format(Cells(c, 1), "yyyy-mm-dd"))
    Next

End Sub --------------------编程问答-------------------- Sub test() 
    Dim c As Integer 
    
    Columns(20).NumberFormatLocal = "@" 
    
    For c = 2 To 60 
        Cells(c, 20) = CStr(Format(Cells(c, 19), "yyyy-mm-dd")) 
    Next 

End Sub --------------------编程问答-------------------- Sub okexcel()
    Cells(1, "B") = "'" & Cells(1, "A").Text
End Sub

如此简单


加上循环就行了! --------------------编程问答--------------------
引用楼主 huangjingjia 的回复:
在excel中,需要将A列的时间如2009-08-06转换为字符串格式,存放在B列,但显示仍然是2009-08-06格式,一个月30天都要转换;如2009-08-06 转换为2009-08-06;2009-08-16转换为2009-08-16;



    'A列是你的原日期,B列是转换后的日期,vba程序如下:
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],""yyyy-mm-dd"")"
    Selection.AutoFill Destination:=Range("B1:B60"), Type:=xlFillDefault
    Range("B1").Select

--------------------编程问答-------------------- 谢谢各位的回复,问题已经解决;


回复8楼:
你的方法有效,能否解释一下
Columns(20).NumberFormatLocal = "@" 

谢谢 --------------------编程问答-------------------- 解决了就结帖吧:)
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,