ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
34 visibility
موضوع: آفیس توسط:

Bob نیاز به استفاده از تابع SUM در ماکرو دارد تا مجموع تمام مقادیر یک ستون را بیابد. مشکل این است که تعداد سلول هایی که باید جمع شوند متفاوت است. برای یک اجرای ماکرو می تواند 100 سلول باشد، در حالی که در مرحله بعدی می تواند 300 و در سومین تنها 25 سلول باشد.

اول، استفاده از اکثر توابع کاربرگ (مانند SUM) از داخل یک ماکرو آسان است. تنها کاری که باید انجام دهید این است که نام تابع را با "Application.WorksheetFunction" وارد کنید. یا به سادگی "WorksheetFunction." بنابراین، اگر می‌دانید که هر اجرای ماکرو به جمع A1:A100، سپس A1:A300 و در نهایت A1:A25 نیاز دارد، می‌توانید از یک ماکرو مانند زیر استفاده کنید:

Public Sub Sum_Demo()
    Dim myRange
    Dim Results
    Dim Run As Long

    For Run = 1 To 3
        Select Case Run
        Case 1
            myRange = Worksheets("Sheet1").Range("A1", "A100")
        Case 2
            myRange = Worksheets("Sheet1").Range("A1", "A300")
        Case 3
            myRange = Worksheets("Sheet1").Range("A1", "A25")
        End Select
        Results = WorksheetFunction.Sum(myRange)
        Range("B" & Run) = Results
    Next Run
End Sub

این ماکرو از یک For استفاده می کند. . . حلقه بعدی برای تعیین محدوده های مختلف سلول هایی که باید جمع شوند. سپس از تابع کاربرگ SUM برای اختصاص مجموع به متغیر Results استفاده می کند، که (در نهایت) در سلولی در ستون B قرار می گیرد. نتایج اولین اجرا در B1، دومی در B2 و سومی در B3 قرار می گیرد. .

در حالی که این ماکرو خاص ممکن است چندان مفید نباشد، چندین تکنیک مفید مانند نحوه تعریف یک محدوده نامگذاری شده، نحوه استفاده از تابع SUM و نحوه قرار دادن مجموع در یک سلول را نشان می دهد. کاری که ماکرو انجام نمی دهد این است که نشان می دهد چگونه تعداد متغیری از سلول ها را برای جمع بندی انتخاب کنیم. برای انجام این کار، بهتر است به متد End شی Range تکیه کنید. خط کد زیر نشان می‌دهد که چگونه می‌توانید مجموع محدوده‌ای را که از A1 شروع می‌شود و تا قبل از اولین سلول خالی در ستون ادامه می‌یابد، پر کنید:

myRange = ActiveSheet.Range("A1", Range("A1").End(xlDown))
Range("B1") = WorksheetFunction.Sum(myRange)

توجه داشته باشید که محدوده (myRange) به این صورت تعریف می‌شود که با A1 شروع می‌شود و تا هر چیزی که متد End برمی‌گرداند گسترش می‌یابد. سپس این جمع شده و در B1 پر می شود.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 33 visibility
ارسال شده در 26 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 36 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 33 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 37 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

336 نفر آنلاین
0 عضو و 336 مهمان در سایت حاضرند
بازدید امروز: 29733
بازدید دیروز: 25180
بازدید کل: 20367070
...