Excel 第一次如果target.address使用

Excel 第一次如果target.address使用,excel,Excel,这是我第一次尝试使用if target.address宏 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1:$A$20 Then If Target.Value > "0" Then Range("B1:B20").Value = Date If Target.Value <= "0" Then

这是我第一次尝试使用if target.address宏

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1:$A$20 Then
    If Target.Value > "0" Then Range("B1:B20").Value = Date
    If Target.Value <= "0" Then Range("B1:B20").Value = ""
    End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果Target.Address=“$A$1:$A$20,则
如果目标值>0,则范围(“B1:B20”)。值=日期

如果Target.Value则只有在一次性更改整个范围A1:A20时,该代码才会起作用

如果要检查该范围内的单元格是否已更改,请使用Intersect并引用与更改的单元格使用偏移量相同行的B列中的单元格

像这样

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("$A$1:$A$20")) Is Nothing Then
        If Target.Value > 0 Then
            Target.Offset(, 1).Value = Date
        ElseIf Target.Value <= 0 Then
            Target.Offset(, 1).Value = ""
        End If
    End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果不相交(目标,范围($A$1:$A$20”))则为零
如果Target.Value>0,则
Target.Offset(,1).Value=日期

ElseIf Target.Value你知道如何将你的宏与我的宏结合起来吗? 试过了


    Sheet2.Unprotect Password:="XXX"

    If Not Intersect(Target, Range("$A7:$A218")) Is Nothing Then
        If Target.Value > 0 Then
            Target.Offset(, 70).Value = Date
        ElseIf Target.Value <= 0 Then
            Target.Offset(, 70).Value = ""
        End If
    End If

    If Target.Count = Columns.Count Then
        
    Sheet2.Unprotect Password:="XXX"
        Application.EnableEvents = False
        Range("A" & Target.Row - 1).Copy Range("A" & Target.Row)
        Range("E" & Target.Row - 1).Copy Range("E" & Target.Row)
        Range("H" & Target.Row - 1).Copy Range("H" & Target.Row)
        Range("V" & Target.Row - 1).Copy Range("V" & Target.Row)
        Range("AB" & Target.Row - 1).Copy Range("AB" & Target.Row)
        Range("AC" & Target.Row - 1).Copy Range("AC" & Target.Row)
        Range("AH" & Target.Row - 1).Copy Range("AH" & Target.Row)
        Range("AQ" & Target.Row - 1).Copy Range("AQ" & Target.Row)
        Range("BC" & Target.Row - 1).Copy Range("BC" & Target.Row)
        Range("BM" & Target.Row - 1).Copy Range("BM" & Target.Row)
        Range("BN" & Target.Row - 1).Copy Range("BN" & Target.Row)
        Range("BO" & Target.Row - 1).Copy Range("BO" & Target.Row)
        Range("BP" & Target.Row - 1).Copy Range("BP" & Target.Row)
        Range("BQ" & Target.Row - 1).Copy Range("BQ" & Target.Row)
        Range("BR" & Target.Row - 1).Copy Range("BR" & Target.Row)
        Range("BS" & Target.Row - 1).Copy Range("BS" & Target.Row)
        Application.EnableEvents = True
        Sheet2.Protect Password:="XXX", AllowInsertingRows:=True, AllowFiltering:=True, AllowFormattingColumns:=True
    End If   
End Sub```

if I now add a row, I get an error "Error 13: Type Mismatch"

any idea what I do have to change so I can use both macros?


best regards
MD

Sheet2.取消保护密码:=“XXX”
如果不相交(目标,范围($A7:$A218”))则为零
如果Target.Value>0,则
Target.Offset(,70).Value=日期

ElseIf Target.Value谢谢我将使用该宏,并将其更改为我需要的单元格和行,这对我帮助很大,再次非常感谢。嘿,知道如何将此宏与我的宏组合在一起吗?它不是宏,而是事件代码。你想将其与什么组合在一起?尝试将代码放在第一位,如果该代码已执行,请在reac之前退出代码另一个代码。