Excel精英培训网

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

求指点代码

[复制链接]
发表于 2012-5-29 00:29 | 显示全部楼层 |阅读模式
Private Sub Worksheet_Change(ByVal Target As Range)
'林场发文时间
On Error Resume Next
If Target.Offset(0, 1) <> "" Then Exit Sub
If Target.Column = 2 And Target <> "" Then
Target.Offset(0, 1) = VBA.Date
End If
'发文企划、经营区、林政、回文林场时间
On Error Resume Next
If Target.Offset(0, -1) <> "" Then Exit Sub
If (Target.Column = 8 Or Target.Column = 11 Or Target.Column = 14 Or Target.Column = 17) And Target <> "" Then
Target.Offset(0, -1) = VBA.Date
End If
End Sub
大家帮忙看下,我自己瞎搞的一段代码,本意是:当B列输入任何值时,C列返回系统日期,且日后B列修改时C列不会变化;当第8列输入任意值时,第7列返回系统日期,且日后第7列不会随第8列的修改而变化,以此类推,第14列、第17列也是如此。我试过了好多回,时灵时不灵的,烦请各位老师和师兄师姐们,帮忙看下,这段代码都有什么问题?诚谢!
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-5-29 01:07 | 显示全部楼层
本帖最后由 表里如意 于 2012-5-29 01:11 编辑
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   Dim offset_value%
  3.   If Target.Count > 1 Then Exit Sub '同时修改多个单元格时不做操作
  4.   Select Case Target.Column   '根据Target所在列设定偏移量
  5.     Case 2: offset_value = 1
  6.     Case 8: offset_value = -1
  7.     Case 11: offset_value = -1
  8.     Case 14: offset_value = -1
  9.     Case 17: offset_value = -1
  10.   End Select
  11.   If offset_value <> 0 Then
  12.     If Target.Offset(0, offset_value) = "" Then Target.Offset(0, offset_value) = Date
  13.   End If
  14. End Sub
复制代码
你的代码主要错在这句:
  1. If Target.Offset(0, 1) <> "" Then Exit Sub
复制代码
你这句的本意是处理Target在B列时的情况的,但你并没有把它写在对B列的判断的IF语句中去,这就使得它对所有单元格都起作用。
回复

使用道具 举报

发表于 2012-5-29 06:48 | 显示全部楼层
本帖最后由 l00l00 于 2012-5-29 07:17 编辑

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target = "" Or Target.Count > 1 Then Exit Sub
Select Case Target.Column
Case 2
    If Target.Offset(0, 1) = "" Then Target.Offset(0, 1) = VBA.Date
Case 8, 11, 14, 17
    If Target.Offset(0, -1) = "" Then Target.Offset(0, -1) = VBA.Date
End Select
End Sub
回复

使用道具 举报

 楼主| 发表于 2012-5-31 00:07 | 显示全部楼层
感谢2楼的详细讲解,不过有运行有些和我的要求不太一样(双击不输入时,我要求时间不录入),3楼完全吻合我的实际要求,就是对循环不太熟悉,在加上对Target应用也不熟悉,还在理解消化中~~采纳3楼为最佳,同时感谢各位朋友的不吝赐教!
回复

使用道具 举报

 楼主| 发表于 2012-5-31 00:09 | 显示全部楼层
好像我上面没表达清楚!3楼的代码完全吻合我的实际需求,只是我暂时还没理解通,先复制应用,慢慢理解消化!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-5 02:49 , Processed in 0.895220 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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