Excel精英培训网

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

[已解决]插入空缺的日期 代码出现“运行时错误‘13’类型不匹配”应如何解决?

[复制链接]
发表于 2013-2-14 21:06 | 显示全部楼层 |阅读模式
本帖最后由 对你微笑 于 2013-2-14 22:00 编辑

Sub 插入空缺的日期()
Dim i&, r&, a&, j&
Sheet1.Activate
r = [a65536].End(xlUp).Row
For i = r To 3 Step -1
   If CDate(Cells(i, 4)) <> CDate(Cells(i - 1, 4)) + 1 Then
      a = CDate(Cells(i, 4)) - CDate(Cells(i - 1, 4))
      Rows(i & ":" & i + a - 2).Insert
      For j = i To i + a - 2
         Cells(j, 4) = CDate(Cells(j - 1, 4)) + 1
      Next j
   End If
Next
End Sub
为何我运行到If CDate(Cells(i, 4)) <> CDate(Cells(i - 1, 4)) + 1 Then出现“运行时错误‘13’类型不匹配
插入行并填充日期.rar (127.79 KB, 下载次数: 18)
 楼主| 发表于 2013-2-14 21:21 | 显示全部楼层
为何我运行到If CDate(Cells(i, 4)) <> CDate(Cells(i - 1, 4)) + 1 Then出现“运行时错误‘13’类型不匹配”应如何解决,求各位大师帮忙,谢谢!!!
回复

使用道具 举报

发表于 2013-2-14 21:21 | 显示全部楼层
可能的原因是你的日期格式不是Excel内部可以识别的格式,譬如中间有多余的空格啊之类的字符,为了正确运行,可以统一日期格式为英文的2012/1/1之类的
回复

使用道具 举报

发表于 2013-2-14 21:22 | 显示全部楼层
估计是D列的数据是文本,且不能被系统识别为日期,你可以在D列填上数字后,再运行试试。
回复

使用道具 举报

 楼主| 发表于 2013-2-14 21:44 | 显示全部楼层
cbg2008 发表于 2013-2-14 21:22
估计是D列的数据是文本,且不能被系统识别为日期,你可以在D列填上数字后,再运行试试。

谢谢suye1010cbg2008已上传附件,重新设置为日期格式,仍然不行?
回复

使用道具 举报

发表于 2013-2-14 21:52 | 显示全部楼层    本楼为最佳答案   
看了你的附件,原因已经明白了,当i=3时,B2单元格是表头,不是日期,所以出错,只要让i从4开始运行即可
回复

使用道具 举报

 楼主| 发表于 2013-2-14 21:57 | 显示全部楼层
cbg2008 发表于 2013-2-14 21:52
看了你的附件,原因已经明白了,当i=3时,B2单元格是表头,不是日期,所以出错,只要让i从4开始运行即可

谢谢!已经可以了。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 19:49 , Processed in 0.742847 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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