设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4677|回复: 5
打印 上一主题 下一主题

如何用宏实现时间单元格的数据拆分

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-18 14:25:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我有一张表格,其中日期时间一栏的显示为"2007-7-2 12:34:55"(如Sheet1所示),我希望有做一个按扭可以实现该数据的拆分,就是日期为一列,时间为一列(如Sheet2所示),请教高手!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-8-18 15:17:07 | 只看该作者
Sub Macro1()
'
' Macro1 Macro
' 宏由 李家祥 录制,时间: 2007-8-18
'

'
    Columns("D").Select
    Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Selection.NumberFormatLocal = "yyyy-m-d;@"
    Range("H3").Select
End Sub

录制宏:先选定日期时间栏,在菜单:数据/分列
选分隔符号:空格
3#
 楼主| 发表于 2007-8-18 17:34:24 | 只看该作者
谢谢上面的,这个我自己也做了个,可是这种在格式上有问题,时间变成了12制不是24制了
怎么解决呢?

[ 本帖最后由 fifi0703 于 2007-8-18 17:45 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

4#
发表于 2007-8-18 19:00:32 | 只看该作者
这个其实直接在单元格里做减法题就好了,又快又直接。
5#
发表于 2007-8-20 00:25:18 | 只看该作者
楼上说的不错,
Sub Macro2()

    Range("H2").Select
    ActiveCell.FormulaR1C1 = "=INT(RC[-4])"
    Range("I2").Select
    ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-1]"
    Range("H2:I2").Select
    Selection.AutoFill Destination:=Range("H2:I11"), Type:=xlFillDefault
    Columns("H:I").Select
    Selection.Copy
    Range("D1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("D").Select
    Application.CutCopyMode = False
    Selection.NumberFormatLocal = "yyyy-m-d;@"
    Columns("E:E").Select
    Selection.NumberFormatLocal = "h:mm:ss;@"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "日期"
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "时间"
    Range("E1").Select
    Selection.Font.Bold = True
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Columns("H:I").Select
    Selection.ClearContents
End Sub

这样代码中指定了复制的行数,如复制的行数与实际的行数不一致会出现错误,如真要象这样做也可,不过,你首先要肯定你数据的格式,然后用代码判断你数据倒底用了多少行,复制那么多行的数据也行.
6#
 楼主| 发表于 2007-8-20 13:27:46 | 只看该作者
谢谢以上两位的提点,小妹再去深入研究下先~~~!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-26 02:37 , Processed in 0.095477 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表