Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3514|回复: 17

VBA代码出问题!不知道错在哪

[复制链接]
发表于 2014-1-3 15:26 | 显示全部楼层 |阅读模式
要求:对F\G\H\I列进行处理,将时间在11:30之前的放在F列,13:30之后的时间放在I列,11:30至13:30之间的时间放入H列。我写出了代码,运行后达不到效果,求大神指点
  1. Sub test()
  2.   Dim rng As Range, i As Integer, arr(1 To 4), item As Byte, my_val
  3.   For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
  4.     item = 1
  5.     For Each rng In Range("F" & i).Resize(1, 4)
  6.       arr(item) = rng.Value
  7.       item = item + 1
  8.     Next
  9.     Range("F" & i).Resize(1, 4).Clear
  10.     For Each my_val In arr
  11.       If my_val <> "" Then
  12.         If my_val < TimeValue("11:30:00") Then
  13.           Cells(i, "F") = Format(my_val, "hh:mm")
  14.         ElseIf my_val > TimeValue("13:30:00") Then
  15.           Cells(i, "I") = Format(my_val, "hh:mm")
  16.         Else
  17.           Cells(i, "H") = Format(my_val, "hh:mm")
  18.         End If
  19.       End If
  20.     Next
  21.   Next
  22. End Sub
复制代码

复件 复件 2013-12日出勤明细表123.zip

41.17 KB, 下载次数: 14

发表于 2014-1-3 16:14 | 显示全部楼层
没问题啊,只是这段可以简化一下:
Sub test()
    Dim i As Integer, arr, my_val
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        arr = Range("F" & i & ":I" & i).Value
        Range("F" & i).Resize(1, 4).Clear
        For Each my_val In arr
            If my_val <> "" Then
                If my_val < TimeValue("11:30:00") Then
                    Cells(i, "F") = Format(my_val, "hh:mm")
                ElseIf my_val > TimeValue("13:30:00") Then
                    Cells(i, "I") = Format(my_val, "hh:mm")
                Else
                    Cells(i, "H") = Format(my_val, "hh:mm")
                End If
            End If
        Next
    Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-1-3 17:40 | 显示全部楼层
zjdh 发表于 2014-1-3 16:14
没问题啊,只是这段可以简化一下:
Sub test()
    Dim i As Integer, arr, my_val

你运行一下代码就知道出什么问题了,莫名其妙的,今天不知道怎么了
回复

使用道具 举报

发表于 2014-1-3 19:25 | 显示全部楼层
homebaby2013 发表于 2014-1-3 17:40
你运行一下代码就知道出什么问题了,莫名其妙的,今天不知道怎么了

我运行啦,完全符合你的要求啊!
回复

使用道具 举报

 楼主| 发表于 2014-1-3 20:46 | 显示全部楼层
zjdh 发表于 2014-1-3 19:25
我运行啦,完全符合你的要求啊!

那为什么在我的电脑上会出错了!在公司也是,在家也是
回复

使用道具 举报

 楼主| 发表于 2014-1-3 20:48 | 显示全部楼层
zjdh 发表于 2014-1-3 19:25
我运行啦,完全符合你的要求啊!

sheet2中是我运行代码后的结果,麻烦你看看,我弄了今天一下午了,就是不知道为什么

错误结果 .rar

41.82 KB, 下载次数: 6

回复

使用道具 举报

发表于 2014-1-3 21:41 | 显示全部楼层
正常啊
运行后的结果 .rar (42.62 KB, 下载次数: 11)
回复

使用道具 举报

发表于 2014-1-3 21:44 | 显示全部楼层
难道你要的不是7楼的结果?
回复

使用道具 举报

 楼主| 发表于 2014-1-4 08:52 | 显示全部楼层
zjdh 发表于 2014-1-3 21:44
难道你要的不是7楼的结果?

我的意思是我的excel是不是设置上有什么问题,我下载了你的正确结果那个文件,在sheet1运行代码,结果仍然如6楼一样....我一开始就觉得代码没什么问题,只是一运行就让人百思不得其解
回复

使用道具 举报

发表于 2014-1-4 10:26 | 显示全部楼层
我7楼的附件中sheet1,就是运行了你6楼中的附件中宏获得的结果啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-30 00:21 , Processed in 0.358965 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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