صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از شماره 11 تا 18 , از مجموع 18

موضوع: کمک برای نوشتن ماکرو

  1. #11


    آخرین بازدید
    2014/11/09
    تاریخ عضویت
    July 2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط K1P نمایش پست ها
    سلام،
    اولا" که اگر براي ستون A و G مي خواهيد عمل شود سطر و ستونها را جابجا نوشته ايد، بعدش هم شايد چون حدود 11 تا 12 هزارتا خانه مد نظرتون است هنگ مي کند! ولي فکر کنم کلا" کدنويسيتون غلط باشد.
    به نظر من اصلا" دو تا متغيير نبايد تعريف کنيد (البته تا اونجا که من از توضيحاتتان درک کردم) من يک کد براي بيست رديف ستون A با يک متغيير نوشتم بينيد به درد مي خورد:
    کد:
    Sub Macro1()Dim i As Integer
    For i = 2 To 20
    If Application.WorksheetFunction.CountIf(Range("a1:a20"), Cells(i, 7).Value) > 0 Then
    Cells(i, 8).Value = "T"
    Else
    Cells(i, 8).Value = "f"
    End If
    Next i
    End Sub
    بعد شما بايد 20 را به 11498 تغيير دهيد
    البته گفتم که: اگر سوالتان را درست فهميده باشم!
    من فرض را بر اين گرفته ام که هر خانه از G2 تا G12952 را مي آيد در ستون A در محدوده A2 تا A11498 مي گردد، اگر مشابه داشت T وگرنه F را در خانه بغلي مي نويسد.
    يعني A2 تا A11498 ثابت است و ديگر احتياج به تعريف متغيير براي آن نيست.
    واقعا لطف کردین ی دنیا ممنون
    مشکل حل شد

  2.  

  3. #12


    آخرین بازدید
    2014/11/09
    تاریخ عضویت
    July 2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط Juliet نمایش پست ها
    درود دوست عزیز

    اینطور که من متوجه شدم شما در ستونی مثلاً B مقادیری دارین که میخواهین چک کنین ببینین هر کدام از سلول های این ستون برابر با یکی از سلول های ستون دیگه مثلاً A هست یا نه. اگر این رو بخواهین یه اشتباه دارین تو کدتون
    وقتی از تابع Cells استفاده میکنین، آرگومان اول شماره سطر و آرگومان دوم شماره ستون هست، درحالیکه شما شماره سطر ها رو ثابت و شماره ستون ها رو متغیر در نظر گرفتین (شمارنده حلقه)

    فایل نمونه ای گه براتون گزاشتم مقادیر 10 سطر اول ستون های A و B رو قیاس میکنه، میتونین محدوده رو به هر جا که دلتون میخواد تغییر بدین، کافیه اعداد ثابت جایگزین شن. به این صورت که محدوده سطر هاتون سقف حلقه ها میشن و شماره ستون نمایش نتیجه هم جای عدد سه میاد، 2 و 1 هم ستون هایی که با هم قیاس میشن. متغیر ها رو تغییر ندین.
    کد:
    Private Sub cmd_Click()
    
        Dim i, j As Integer
    
        For i = 1 To 10
            For j = 1 To 10
    
                If Cells(i, 2).Value = Cells(j, 1).Value Then
                    Cells(i, 3).Value = "TRUE"
                    Exit For
                Else
                    Cells(i, 3).Value = "FALSE"
                End If
    
            Next j
        Next i
    
    End Sub
    به اضافه اینکه وقتی فایل xlsm یعنی فایل اکسلی که کد VBA داره رو باز میکنین، اکسل پیغامی در یک کادر زرد رنگ بهتون میده با عنوان Security Warning اون رو با دکمه Enable Content فعال کنین، ضمناً قبل از این دکمه هم فایل رو که باز میکنین ممکنه لازم باشه دکمه Enable Editing رو هم بزنین.

    ====================

    یه موضوع دیگه، فکر میکنم بهتر بود به جای ارسال پاسخ به این تاپیک (که مال سه سال پیشه)، خودتون یک سؤال رو شروع میکردین، به نظرم برای همگون بودن با قوانین انجمن عزیز در این مورد از یکی از مدیران گرام مشورت بگیرین، به هر صورت نظر قطعی با اون هاست.

    امیدوارم این کد به دردتون بخوره
    موفق باشین
    از اینکه وقتتون رو در اختیارم گذاشتین ی دنیا ممنون
    در مورد پیشنهاد ایجاد سوال جدید باید بگم من دفعه قبل همین کارو کردم اما متاسفانه اخطار خوردم که از پیشینه سایت استفاده کنم ...متاسفانه در این مورد من هیچی نمیدونم چون قوانین سایت برام مبهمه ...مجبور شدم از این تاپیک قدیمی استفاده کنم
    بازم از لطفتون ممنون

  4. سپاس ها (2)


  5. #13


    آخرین بازدید
    2020/10/03
    تاریخ عضویت
    June 2014
    محل سکونت
    در کنار یگانه دوست، در دیار اصفهان
    نوشته ها
    47
    امتیاز
    107
    سپاس
    70
    سپاس شده
    97 در 31 پست
    سطح اکسل
    61.00 %

    Juliet به Yahoo ارسال پیام
    نقل قول نوشته اصلی توسط victoria_1370 نمایش پست ها
    از اینکه وقتتون رو در اختیارم گذاشتین ی دنیا ممنون
    در مورد پیشنهاد ایجاد سوال جدید باید بگم من دفعه قبل همین کارو کردم اما متاسفانه اخطار خوردم که از پیشینه سایت استفاده کنم ...متاسفانه در این مورد من هیچی نمیدونم چون قوانین سایت برام مبهمه ...مجبور شدم از این تاپیک قدیمی استفاده کنم
    بازم از لطفتون ممنون
    خواهش میکنم، اگر تونسته باشم در حل مشکلتون کمکی کرده باشم باعث مسرته
    پیروز باشید
    «زمانيکه با زمانه خويش نساختي و با مسندنشينان و امربران ايشان کنار نيامدي
    و آنچه را
    جاهلان ميگويند، جاهلانه باز نگفتي،
    لاجرم به تبعيد ابدي گرفتار خواهي شد!
    حتي اگر جسمت در کنج منزلي در شهري ساکن باشد؛
    و اگر بر نپذيرفتن، پاي فشردي،

    آواره ات خواهند کرد،
    به زندانت خواهند افکند
    و به دارت خواهند کشيد ...»

  6. سپاس ها (1)


  7. #14


    آخرین بازدید
    2014/11/09
    تاریخ عضویت
    July 2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست
    تعیین سطح نشده است

    سلام من ی ماکرو نوشتم و زمان اجرای اون خیلی طولانی شده
    میخوام بدونم راهی هست که بتونم در حین اجرا اونو متوقف کنم و بتونم نتیجه رو ببینم و دوباره ران کنم تا ادامه بده؟
    ممنون

  8. #15


    آخرین بازدید
    2023/08/14
    تاریخ عضویت
    March 2010
    محل سکونت
    تهران
    نوشته ها
    2,034
    امتیاز
    4508
    سپاس
    2,467
    سپاس شده
    4,096 در 1,241 پست
    سطح اکسل
    85.00 %

    khakzad به Yahoo ارسال پیام
    چند راه متنوع وجود داره:
    1) با کلید F8 کدهای خودتون رو خط به خط اجرا کنید
    2) داخل کدتون ی نقطه انفصال بذارید که فقط تا اون شرط ران کنه و ج رو داخل مسیج باکس ببینید (در این حالت نمی تونید اجرای کد رو از اون مرحله ادامه بدید)
    3) وقتی نقطه انفصال م یذارید، مثلا میگید حلقه به دور دهم که رسید، msgbox بذارید. در اینجا نتیجه رو بهتون نشون میده و وقتی که مسیج باکس رو مبندید ادامه کد ران میشه.

    4) با موس کنار خط کدی که می خواید تا اونجا وایسته کلیک کنید تا قرمز بشه و دایره قرمز بیاد کنارش.اینطوری می گید که کد رو از اول اجرا کن تا این خط

  9. #16


    آخرین بازدید
    2014/11/09
    تاریخ عضویت
    July 2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست
    تعیین سطح نشده است

    ممنون
    نه منظورم این نبود
    الان کدی که نوشتم چند ساعته داره اجرا میشه واسه همین نمیدونم در کدوم مرحله هست الان نمیتونم متوقف کنم و ببینم تا الان چیکار کرده؟و بعد دوباره بگم ادامه بده؟

  10. #17


    آخرین بازدید
    2023/08/14
    تاریخ عضویت
    March 2010
    محل سکونت
    تهران
    نوشته ها
    2,034
    امتیاز
    4508
    سپاس
    2,467
    سپاس شده
    4,096 در 1,241 پست
    سطح اکسل
    85.00 %

    khakzad به Yahoo ارسال پیام
    خیر
    الان نمیشه

  11. #18


    آخرین بازدید
    2014/11/09
    تاریخ عضویت
    July 2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست
    تعیین سطح نشده است

    باشه ممنون از لطفتون
    فقط الان اگه بخوام این اجرا رو متوقف کنم راه ساده تری هم هست برای اجرای سریعتر این ماکرو؟؟
    من از دوتا حلقه تودرتو استفاده کردم


صفحه 2 از 2 نخستنخست 12

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

نوشتن ماکرو در اکسل

نوشتن ماکرو اکسل2010

اموزش نوشتن ماكرو در اكسل

فركول ماكرو در اكسل

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است
با ما در تماس باشيد