نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: نوشتن فرمول در یک سلول با vba

  1. #1


    آخرین بازدید
    2023/09/10
    تاریخ عضویت
    July 2010
    نوشته ها
    118
    امتیاز
    28
    سپاس
    90
    سپاس شده
    30 در 18 پست
    تعیین سطح نشده است

    نوشتن فرمول در یک سلول با vba

    سلام
    من مخواستم توی یک سلول فرمول بنوسیم
    کدی که با ماکرو ریکورد کردم این بود:
    کد:
    "=SUM(R[-2]C[6]:R[-1]C[6])"
    مشکلی که من دارم این هست که میخوام قسمت اول فرمول فوق ثابت باشه مثلا سلول g4 باشه(یعنی R[-2]C[6] بشه g4)
    چطوری میشه این فرمول رو عوپض کرد که اینجوری بشه؟
    ضمنا میشه به جای -2 از یه متغییر که عدد مورد نظر داخلش هست استفاده کرد؟
    مورد استفاده هم این هست که قراره انتهای یک ستون جمع اون ستون نوشته بشه با توجه به اینکه انتهای ستون مشخص نیست(هر دفعه عوض میشه) من کد نوشتم که انتهای اون ستون مشخص بشه و داخل با استفاده از sum جمع اون ستون نوشته بشه
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.

  2.  

  3. #2


    آخرین بازدید
    7 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,472
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط master نمایش پست ها
    سلام
    من مخواستم توی یک سلول فرمول بنوسیم
    کدی که با ماکرو ریکورد کردم این بود:
    کد:
    "=SUM(R[-2]C[6]:R[-1]C[6])"
    مشکلی که من دارم این هست که میخوام قسمت اول فرمول فوق ثابت باشه مثلا سلول g4 باشه(یعنی R[-2]C[6] بشه g4)
    چطوری میشه این فرمول رو عوپض کرد که اینجوری بشه؟
    ضمنا میشه به جای -2 از یه متغییر که عدد مورد نظر داخلش هست استفاده کرد؟
    مورد استفاده هم این هست که قراره انتهای یک ستون جمع اون ستون نوشته بشه با توجه به اینکه انتهای ستون مشخص نیست(هر دفعه عوض میشه) من کد نوشتم که انتهای اون ستون مشخص بشه و داخل با استفاده از sum جمع اون ستون نوشته بشه

    سلام دوست عزیز
    برای چیزی که شما میخواین دو سه روش وجود داره. بهترین روش بستگی به کدهاتون داره
    یک روش اینه که شما فرمول رو اینطوری بنویسید:
    کد:
    ActiveCell.FormulaR1C1 = "=SUM(R4C7:R[-1]C[6])"
    R4C7 یعنی G4
    روش دیگه اینه که ساختار فرمول رو عوض کنید. به این صورت:
    کد:
    ActiveCell.Formula = "=SUM(G4:G10)"
    برای سوال دوم هم باید بگم که بله میشه خیلی هم راحته
    مثلا اینطوری:
    کد:
    i=1
    ActiveCell.FormulaR1C1 = "=SUM(R["&i&"]C[6]:R[-1]C[6])"


  4. #3


    آخرین بازدید
    2023/09/10
    تاریخ عضویت
    July 2010
    نوشته ها
    118
    امتیاز
    28
    سپاس
    90
    سپاس شده
    30 در 18 پست
    تعیین سطح نشده است

    ممنون لطف کردید همون روش اول کار رو راه انداخت
    روش دوم چون انتهای ستون نامشخص هست به کارم نمیاد

    اما روش سوم نمیدونم چرا خطا میده و قرمز میشه!!! خودم توی نت خوندم همینجوری گفته بودن باید کار کنه اما برا من جواب نمیده
    البته اینجا اگه جواب هم بده روش اول بهتر هست اما میخوام بدونم چرا خطا میده!!!!
    کد اصلی من این هست که خطا میده
    کد:
    ActiveCell.FormulaR1C1 = _
            "=""تعداد ""&R[-1]C&"" فقره چک جمعا به مبلغ ""&TEXT(SUM(R["&zz&"]C[6]:R[-1]C[6]),""#,#"")&"" ریال"""
    ضمنا میشه یه کوچولو تفاوت بین
    R[1]C[6]

    و


    R1C6


    رو بگید؟(البته خودم یه چیزایی متوجه شدم ولی میخوام ببینم درست فکر میکنم یا نه!)
    با توجه به چیزی که من متوجه شدم توی حالت اول میشه عدد منفی داد ولی توی حالت دوم نمیشه درسته؟
    باتشکر

  5. #4


    آخرین بازدید
    7 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,472
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط master نمایش پست ها
    ممنون لطف کردید همون روش اول کار رو راه انداخت
    روش دوم چون انتهای ستون نامشخص هست به کارم نمیاد

    اما روش سوم نمیدونم چرا خطا میده و قرمز میشه!!! خودم توی نت خوندم همینجوری گفته بودن باید کار کنه اما برا من جواب نمیده
    البته اینجا اگه جواب هم بده روش اول بهتر هست اما میخوام بدونم چرا خطا میده!!!!
    کد اصلی من این هست که خطا میده
    کد:
    ActiveCell.FormulaR1C1 = _
            "=""تعداد ""&R[-1]C&"" فقره چک جمعا به مبلغ ""&TEXT(SUM(R["&zz&"]C[6]:R[-1]C[6]),""#,#"")&"" ریال"""
    ضمنا میشه یه کوچولو تفاوت بین
    R[1]C[6]

    و


    R1C6


    رو بگید؟(البته خودم یه چیزایی متوجه شدم ولی میخوام ببینم درست فکر میکنم یا نه!)
    با توجه به چیزی که من متوجه شدم توی حالت اول میشه عدد منفی داد ولی توی حالت دوم نمیشه درسته؟
    باتشکر


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


    در مورد تفاوت اون دو مورد عرض کنم که حالتی که [] داره یعنی نسبی و حالتی که عدد خالی هست ینی مطلق
    برای اینکه واضحتر بگم یک مثال میزنم
    اگر شما در سلول A1 قرار داشته باشید سلول C5 نسبت به سلول مرجع چهار ردیف پایینتر و دو ستون جلوتر است یعنی R[4]C[2]
    در حالی که اگه بخواین بگین $C$5 یعنی سطر پنجم و ستون سوم R5C3



  6. سپاس ها (1)



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

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

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

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

نوشتن فرمول در vba

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

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

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