PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تداخل برنامه با کد داخل Worksheet_Change



eppagh
2014/11/03, 11:31
برنامه ای روی اکسل نوشته ام که با چند شیت کار می کند.
یکی از شیت ها ایونت 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

eppagh
2014/11/09, 17:43
کسی نمی دونه؟

Amir Ghasemiyan
2014/11/09, 18:38
سلام دوست عزيز
شما تو قطعه كد اولي كه گذاشتين اين عبارت رو دارين:

Range("Data").ClearContents

خب اين يعني تغيير در ورك شيت. پس طبيعي هست كه وارد كد دوم بشه

شما بايد داخل كد دوم يه شرط بذارين كه مثلا اگه رنج data خالي بود اون عمليات انجام نشه يا يه چيزي شبيه اين