برنامه ای روی اکسل نوشته ام که با چند شیت کار می کند.
یکی از شیت ها ایونت Worksheet_Change دارد.
وقتی برنامه اول اجرا می شود بدون اینکه ربطی داشته باشد وارد برنامه Worksheet_Change می شود و تداخل ایجاد کرده خطا می دهد.
چطور این اتفاق می افتد و چه کار باید کرد؟
وقتی برنامه به این خط می رسد
وارد برنامه زیر در شیت یک می شود و روی عبارت آخرین شرط گیر می کند.
یکی از شیت ها ایونت Worksheet_Change دارد.
وقتی برنامه اول اجرا می شود بدون اینکه ربطی داشته باشد وارد برنامه Worksheet_Change می شود و تداخل ایجاد کرده خطا می دهد.
چطور این اتفاق می افتد و چه کار باید کرد؟
وقتی برنامه به این خط می رسد
کد:
Range("Data").ClearContents Sheet1.ListObjects("Data").DataBodyRange.Delete
کد:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("B3").Address Then If Range("B3") = "" Then Exit Sub End If ActiveSheet.ListObjects("Data").Range.AutoFilter Field:=1, Criteria1:=Range("B3") Range("C3").Select ElseIf Target.Address = Range("C3").Address Then If Range("C3") = "" Then Exit Sub End If ActiveSheet.ListObjects("Data").Range.AutoFilter Field:=2, Criteria1:=Range("C3") Range("B3").Select ElseIf Target.Address = Range("D3").Address Then If Range("D3") = "" Then Exit Sub End If ActiveSheet.ListObjects("Data").Range.AutoFilter Field:=3, Criteria1:=Range("D3") Range("D3").Select ElseIf Target.Column = Range("Data[ßÏ ßÇáÇ]").Column Then If Selection.Count > 1 Then If WorksheetFunction.CountIf(Sheet2.Range("List[ßÏ ßÇáÇ]"), ActiveCell) = 0 And ActiveCell <> "" Then Target.ClearContents MsgBox "Çíä ÔãÇÑå ËÈÊ äÔÏå ÇÓÊ" End If ElseIf Selection.Count = 1 Then If WorksheetFunction.CountIf(Sheet2.Range("List[ßÏ ßÇáÇ]"), Target) = 0 And Target <> "" Then Target.ClearContents MsgBox "Çíä ÔãÇÑå ËÈÊ äÔÏå ÇÓÊ" End If End If End If End Sub
کامنت