像下面这样的代码,如果插入列或删除列就要跟着修改代码,很麻烦,如何避免呢?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Offset(0, -3) = "" then
Target.Offset(0, -3) = Date
end if
end if
End Sub
可以将4替换为:UsedRange.Find("第4列的标题", lookat:=xlWhole).Column
追问怎么样算列标题呢?主要就想填写 产品卷号 时能自动填写 生产日期 。
产品卷号是在Y列,column也不应该是等4呀
你的意思是不是如果产品卷号有添加,则将生产日期列也添加当时的时间?如果是你试一下如下代码:
追问Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = UsedRange.Find("产品卷号", lookat:=xlWhole).Column Then
If Target(1, -2) = "" Then
Target(1, -2) = Date
End If
End If
End Sub
如果生产日期和产品卷号之间可能会插入或删除列呢?生产日期列要怎么表示呢
追答如果生产日期和产品卷号之间可能会插入或删除列的话就使用如下代码:
追问Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = UsedRange.Find("产品卷号", lookat:=xlWhole).Column Then
If Cells(Target.Row, UsedRange.Find("生产日期", lookat:=xlWhole).Column) = "" Then
Cells(Target.Row, UsedRange.Find("生产日期", lookat:=xlWhole).Column) = Date
End If
End If
End Sub
对的,就是这个效果,谢谢!!
追答请采纳,谢谢。