چند بار استفاده از on error goto 0 در یک ماژول
- ۳۰ مرداد ۹۵ ، ۰۸:۴۳
Right click taskbar excel icon no longer displays recent items. Right click on other apps still displays recent items
از منوی استارت RUN را فراخوانی نمائید(کلیدهای ویندوز و R را همزمان نگه دارید)
ادرس زیر را در آن وارد نمائید
برای رفع خطا من گشتم چیزی پیدا نکردم
روی بعضی سیستم ها کار میکنه روی بعضی خطا میده
علت اصلی ظاهرا مربوط به نوع ادرس دهی ماست و عدم رعایت ترتیب در انتخاب ها(اول فایل بعد کار برگ بعد دامنه و ...)
برای خلاصی از شر این خطا بهتره خطا را متوقف کنید
on error resume next
قبل از خط کد مربوطه بذارید
مشکلی هم در اجرای کد بوجود نمی یاد
راههای مختلفی وجود دارد یکی زبان ویندوز است در ویندوز هفت مسیر زیر را دنبال کنید
control panel--region and language--administrative--change system locale
و انتخاب زیان فارسی
برای این منظور مسیر زیر را دنبال نمائید
file--option--Trust Center--Trust Center setting--message bar
برای این منظور مسیر زیر را دنبال نمائید
file--option--Trust Center--Trust Center setting--protected view
یکی از ایرادات مهم در برنامه های نوشته شده با اکسل عدم جانمایی مناسب برگه های اکسل در مانتیورهای مختلف می باشد با استفاده از کد زیر و با تنظیم بزرگنمایی برگه اکسل این مشکل تا حدودی رفع می گردد.
Sub Macro1()
Dim maxWidth As Long, myWidth As Long
Dim myZoom As Single
maxWidth = Application.UsableWidth * 0.96
myWidth = ThisWorkbook.ActiveSheet.Range("r1").Left
myZoom = maxWidth / myWidth
ActiveWindow.Zoom = myZoom * 100
End Sub
در کد بالا به جای (r1) آخرین ستونی که مایلید نمایش یابد را وارد نمائید
نقل شده از
خروجی تابع offset یک محدوده می باشد این تابع جهت اجرا نیازمند تعیین پنج مولفه به شرح زیر می باشد.
1- محل مبدا جهت شروع محاسبات
مورد دو و سه مربوط به جابه جایی محل مبدا می باشد به طوریکه
2- تعداد ردیفی که از مبدا جابه جا می شوییم
3- تعداد ستونی که از مبدا جابه جا می شوییم
خوب تا اینجای کار مبدا و میزان جابه جایی آن مشخص گردید.
دو مولفه بعدی در واقع محدوده مورد نظر را از محل مبدا مشخص می کند
4- ارتفاع محدوده مورد نظر(1 یعنی بدون جابه جایی)
5- عرض محدوده مورد نظر(1 یعنی بدون جابه جایی)
مثال
در مثال فوق مبدا در ابتدا سلول A2 می باشد که به اندازه 3 ردیف پایین و دو ستون به سمت راست تغییر پیدا می کند لذا مبدا نهایی سلول C5 خواهد بود و چون طول و عرض محدوده 1 انخاب شده است لذا خروجی نهایی تابع همان سلول C5 می باشد.
جهت استفاده از این تابع و ایجاد فرمولهای پویا به مثال زیر توجه کنید
در مثال بالا ما نیازمند تعیین کل فروش می باشیم محدوده انتخابی تا ردیف 6 می باشد اما داده های ما هر روز در حال افزایش می باشد و هر بار بایستی محدوده جمع زدن تغییر یابد(توجه دارید که این فقط یک مثال است )
به راحتی و با استفاده از تابع offset مشابه تصویر فوق می توان فرمول جمع را یکبار نوشته و با تغییر محدوده داده ها محدوده جمع زدن نیز تغییر می یابد
کنترل و مدیریت خطاهای ناخواسته در حین اجرای یک ماکرو بسیار حائز اهمیت می باشد برای این منظور راهکارها و فرامین در ماکرونویسی اکسل در نظر گرفته شده است که از جمله متداولترین انها می توان به
1- On Error Resume Next
ساده ترین و در عین حال کمی خطرناک با این فرمان ماکرو از خطهای همراه با خطا عبور می کند و هیچ خطایی نشان داده نمی شود
مثال
On Error Resume Next
N = 1 / 0 ' cause an error
If Err.Number <> 0 Then
N = 1
End If
2-On Error Goto ali
کلمه علی در کد فوق به یک مکان در پایین تر از محل وقوع خطا اشاره دارد و به ماکرو اجازه داده می شود در صورت بروز خطا ادامه اجرای ماکرو به بعد از محل مورد نظر انتقال یابد
مثال
:On Error Goto ali
N = 1 / 0 ' cause an error
'
' more code
'
Exit Sub
:ali
Resume Next
End Sub
مطالب کامل تر رو در آدرس زیر مشاهد کنید
http://www.cpearson.com/excel/errorhandling.htm