نحوه اختصاص نتيجه يك فرمول به يك متغير در vb

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • misammisam
    مدير تالار حسابداری و اکسل

    • 2014/04/04
    • 892
    • 64.00

    نحوه اختصاص نتيجه يك فرمول به يك متغير در vb

    با سلام

    وقتي در vb يك كد رو به يك متغير اختصاص ميدي ، كل كد رو به متغير اختصاص ميده ، من ميخوام فقط نتيجشو به متغير انتقال بدم .

    مثلا :
    کد PHP:
    Sub Macro1()
    Count "=COUNTIF(aston1,1)"
    ActiveCell.FormulaR1C1 Count
    End Sub 
    نتيجه ميشه در محدوده مورد نظر اعداد رو نسبت به شرط ميشمره و در سلول اكتيو قرار ميده ، من ميخوام فقط عدد محاسبه شده رو ببره داخل سلول مورد نظر نه فرمول زير رو
    کد PHP:
    =COUNTIF(aston1;1
    با تشكر
    [CENTER][SIGPIC][/SIGPIC]
    [/CENTER]
    [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
    [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
    [/CENTER]
    [/INDENT]

    [/FONT][/FONT][/FONT][/FONT][/FONT]
    [/CENTER]
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • 2013/01/17
    • 1198
    • 84.00

    #2
    با درود خوب چرا اینجوری از کد زیر استفتده کن

    کد:
    ActiveCell.Value = Application.WorksheetFunction.CountIf(Range("A1:A10"), 1)
    شبیه همین عمل کن . حل میشه - چرا متغییر چرا لقمه دور سر - سری که درد نمیکنه دسمال چرا
    در پناه خداوندگار ایران زمین باشید و پیروز

    کامنت

    • misammisam
      مدير تالار حسابداری و اکسل

      • 2014/04/04
      • 892
      • 64.00

      #3
      نوشته اصلی توسط امين اسماعيلي
      با درود خوب چرا اینجوری از کد زیر استفتده کن

      کد:
      ActiveCell.Value = Application.WorksheetFunction.CountIf(Range("A1:A10"), 1)
      شبیه همین عمل کن . حل میشه - چرا متغییر چرا لقمه دور سر - سری که درد نمیکنه دسمال چرا
      ممنون ، البته اين درسته ، من اونطوري نوشتم كه سوالم مفهوم باشه ، ولي مشكل من يه چيز ديگست ، مثلا اگه بخوام از تابع RANDBETWEEN استفاده كنم چطوري بايد عمل كنم كه فقط مقدار رو بهم بده . ميدوني اين تابع در اكسل 2010 به بعد تو vb اكسل هست ، فايلم اينطوري تو ورژناي پايينتر اكسل به مشكل ميخوره .
      [CENTER][SIGPIC][/SIGPIC]
      [/CENTER]
      [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
      [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
      [/CENTER]
      [/INDENT]

      [/FONT][/FONT][/FONT][/FONT][/FONT]
      [/CENTER]

      کامنت

      • امين اسماعيلي
        مدير تالار ويژوال بيسيك

        • 2013/01/17
        • 1198
        • 84.00

        #4
        با درود
        خب برای اینکه این تابع تو ورژن های پایین تر عمل کنه باید Analysis ToolPak add-in رو نصب کنن تو اون ورژن ها مثلا به طریق زیر :برای 2003
        • On the Tools menu, click Add-Ins.
        • In the Add-Ins available list, select the Analysis ToolPak box, and then click OK.
        در پناه خداوندگار ایران زمین باشید و پیروز

        کامنت

        • امين اسماعيلي
          مدير تالار ويژوال بيسيك

          • 2013/01/17
          • 1198
          • 84.00

          #5
          با درود
          راه بهترش هم استفاده از فرمول زیر هستش که در واقع همون Rand between هستش مثلا
          کد:
          =INT((upperbound - lowerbound + 1) * RAND() + lowerbound)
          که Upperbound در واقع مرز بالا و Lowerbound مرز پایین میباشد
          حالا مثلا اگر بخواهیم بین 5 و 10 به ما همون Randbetween بده میشه
          کد:
          =INT((10 - 5+ 1) * RAND() + 5)
          حال اگر بخواهیم که همین فرمول رو در vba بنویسیم میشه

          کد:
          ActiveCell.Value = Int((10 - 5 + 1) * Rnd() + 5)
          در پناه خداوندگار ایران زمین باشید و پیروز

          کامنت

          • misammisam
            مدير تالار حسابداری و اکسل

            • 2014/04/04
            • 892
            • 64.00

            #6
            نوشته اصلی توسط امين اسماعيلي
            با درود
            راه بهترش هم استفاده از فرمول زیر هستش که در واقع همون Rand between هستش مثلا
            کد:
            =INT((upperbound - lowerbound + 1) * RAND() + lowerbound)
            که Upperbound در واقع مرز بالا و Lowerbound مرز پایین میباشد
            حالا مثلا اگر بخواهیم بین 5 و 10 به ما همون Randbetween بده میشه
            کد:
            =INT((10 - 5+ 1) * RAND() + 5)
            حال اگر بخواهیم که همین فرمول رو در vba بنویسیم میشه

            کد:
            ActiveCell.Value = Int((10 - 5 + 1) * Rnd() + 5)
            ممنونم امين جان ، از راهنماييهاي دقيقي كه هميشه ميدي .
            بله اين كد خيلي بهتره ، همه جا جواب ميده .
            [CENTER][SIGPIC][/SIGPIC]
            [/CENTER]
            [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
            [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
            [/CENTER]
            [/INDENT]

            [/FONT][/FONT][/FONT][/FONT][/FONT]
            [/CENTER]

            کامنت

            • امين اسماعيلي
              مدير تالار ويژوال بيسيك

              • 2013/01/17
              • 1198
              • 84.00

              #7
              با درود

              خواهش میکنم - شما لطف داری امیدوارم هر جا هستین همگی خوش باشین
              در پناه خداوندگار ایران زمین باشید و پیروز

              کامنت

              چند لحظه..