excel 请帮忙

添加和修改宏代码,原代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 9 And Target.Row > 2 And Target.Row < 100 And Target.Count = 1 Then
If Target.Value = "已付" And Cells(Target.Row, 10) = 0 Then
Cells(Target.Row, 10) = Now
ElseIf Trim(Target.Value) = "" Then
Cells(Target.Row, 10) = ""
End If
End If
End Sub 意思是当I列2至100输入已付时J列显示当天日期,但我想增加当A列输入任何数据时,B列显示当天日期,求帮忙。

第1个回答  2014-06-07
Sub fds()Dim ib As Long, ic As LongDim jb As Long, jc As LongIntersect(Range("b2:c" & Rows.Count), ActiveSheet.UsedRange).Interior.ColorIndex = xlNone '去除着色,如果下面不为最大值着色,那么这句也可以去掉ib = Cells(Rows.Count, 2).End(xlUp).Rowic = Cells(Rows.Count, 3).End(xlUp).Rowjb = Range("b:B").Find(WorksheetFunction.Max(Range("B:b"))).Rowjc = Range("c:c").Find(WorksheetFunction.Max(Range("c:c"))).Row'为最大值标上着色,数字可以更改,不需要可以删除下面两句Cells(jb, 2).Interior.ColorIndex = 3Cells(jc, 3).Interior.ColorIndex = 3 If jb > jc ThenRange("b2:b" & jb - jc + 1).Delete shift:=xlUpElseIf jb < jc ThenRange("c2:c" & jc - jb + 1).Delete shift:=xlUpElseEnd IfEnd Sub如果你要的数据从B1,C1开始,把里面的
Range("b2:b" & jb - jc + 1).Delete shift:=xlUp 改为 Range("b1:b" & jb - jc).Delete shift:=xlUpRange("c2:c" & jc - jb + 1).Delete shift:=xlUp改为Range("c1:c" & jc - jb).Delete shift:=xlUp
第2个回答  推荐于2016-06-20
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column = 9 Or Target.Column = 1) And Target.Row > 2 And Target.Row < 100 And Target.Count = 1 Then
    If Target.Column = 9 And Target.Value = "已付" And Cells(Target.Row, 10) = 0 Then Cells(Target.Row, 10) = Now
    If Target.Column = 1 Then Cells(Target.Row, 2) = Now
    If Trim(Target.Value) = "" Then Target.Offset(, 1) = ""
End If
End Sub

本回答被提问者和网友采纳
第3个回答  2014-06-07
已私信发你,查收.
相似回答