请教一下Excel的VBA中怎样能把         分隔成 
 0:38:57        0     38    57
22:06:48       22      6    48
 1:32:32        1     32    32
 0:04:03        0      4     3
我想用处理字符串的方式来做,可是不行, 0:38:57这种时间格式不能转?VBA讨论好像没人去了,来这里提问。

解决方案 »

  1.   

    可以用aa=split(string,":")函数,其分开的值会被该变量记下来,接着用ubound(aa)就可以知道aa的个数了。
      

  2.   

    总算有人看见了!可能在EXCEL中的格式设置不对。将其设置为文本即可。
    例如:将A列设置为文本,输入你上面的数字。运行下面的宏。Sub SplitTime()
        Dim T As String
        Dim St() As String
        Dim A As Long
        Dim B As Long
        
        On Error Resume Next
        
        For A = 1 To 100
            Erase St
            St = Split(Sheet1.Cells(A, 1), ":")
            For B = 0 To UBound(St)
                Sheet1.Cells(A, 2 + B) = St(B)
            Next
        Next
    End Sub——————————————————————————————————————————
    关键问题在于我的数据是粘贴上去的,原来列格式设置成文本,拷贝上从网页上粘贴来的
    数据后列单元格式自动变成了日期或时间,用鼠标右键设单元格格式为数值或文本就不行,变成
    了0.012858796这类东西!见第一行
    【网页】拨号帐户使用记录______________________________________________________________________________
    登录名          起始时间          终止时间          使用时长 优惠时长
    *********** 2004-5-22 11:55 2004-5-22 12:14 0.012858796   0:18:31
    *********** 2004-5-22 18:07 2004-5-22 18:47 0:39:52 0:39:52
    *********** 2004-5-24 23:25 2004-5-24 23:33 0:07:51 0:07:51
    *********** 2004-5-25 12:20 2004-5-25 12:26 0:05:25 0:00:00
    *********** 2004-5-25 16:20 2004-5-25 16:33 0:13:39 0:00:00
    *********** 2004-5-25 22:42 2004-5-25 23:18 0:35:23 0:18:16
    *********** 2004-5-26 1:52 2004-5-26 1:59 0:06:22 0:06:22
    *********** 2004-5-26 13:14 2004-5-26 13:22 0:07:54 0:00:00
    *********** 2004-5-26 14:42 2004-5-26 14:46 0:04:00 0:00:00
    *********** 2004-5-26 16:00 2004-5-26 16:38 0:37:07 0:00:00
    *********** 2004-5-26 18:45 2004-5-26 18:50 0:05:10 0:00:00
    *********** 2004-5-26 21:03 2004-5-26 21:05 0:02:11 0:00:00
    *********** 2004-5-27 21:44 2004-5-27 22:05 0:21:09 0:00:00
    *********** 2004-5-27 23:25 2004-5-27 23:56 0:31:05 0:31:05
    *********** 2004-5-28 18:33 2004-5-28 18:39 0:06:21 0:00:00
    *********** 2004-5-29 12:32 2004-5-29 12:54 0:22:11 0:22:11
    *********** 2004-5-29 12:55 2004-5-29 13:20 0:24:30 0:24:30目的就是把每次上网的时间统计一下,我发现网通CNC统计的时间总是比上网计费软件每次的
    时间多1~2分钟,所以想把数据贴到Excel里用vba计算一下。你可以先设单元格为时间,输入
    2004-5-29 13:20然后设为文本或数值就是那样了,如能解决就可以分隔2004-5-29 13:20算
    当日上网时间和累计时间了。给点思路!
      

  3.   

    用Range的Text属性,不要用Range("A1")或Range("A1").Value

    a = Split(Range("A1").Text, ":")
    MsgBox a(1)
    注意:Range("A1").Text是所见所得,如列不够宽,日期显示为#####,则Range("A1").Text也得到“####”
      

  4.   

    大头说的太好了,大头哥,能不能和我一起来管理VBA版呀,我邀请你,同意吗?
      

  5.   

    Replace("0:38:57", ":", vbTab)
      

  6.   

    :hhjjhjhj(大头) 
    Range("A1").Text
    你的办法是可以的,可是我怎么象用Sheet1.Cells(x, 1)一样随意移动单元格?
      

  7.   

    dbkey是一个vcl组件, 不能删除的。否则提示:[error] file not found "dbkey.res" 单独编译这个组件时不会出错,只有在编译引用这个组件的工程的时候才出现在这个错误.
    ______________________
    唉!这到底是为什么??????????????????