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

باب پرسید آیا می توان فرمول نوشت و جواب را به جای در سلول در نظر گرفت؟ پاسخ کوتاه این است که نه، شما نمی توانید آن را با یک فرمول انجام دهید. با این حال، می توانید این کار را با ماکرو انجام دهید. به عنوان مثال، ماکرو زیر محتویات دو سلول (A1 و B1) را اضافه می کند و سپس نتیجه را در یک نظر متصل به سلول C1 می چسباند:

Sub MakeComment()
    With Worksheets(1).Range("C1").AddComment
        .Visible = True
        .Text "Total of cell A1 plus cell B1 is equal to " & _
          ([A1].Value) + ([B1].Value)
    End With
End Sub

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

Sub ValueToComment()
    Dim rCell As Range
    For Each rCell In Selection
        With rCell
            If .HasFormula Then
                On Error Resume Next
                .Comment.Delete
                On Error GoTo 0
                .AddComment
                .Comment.Text Text:=CStr(rCell.Value)
            End If
        End With
    Next
    Set rCell = Nothing
End Sub

در حین حلقه زدن سلول‌های انتخابی، اگر یکی از سلول‌ها دارای فرمول و نظر موجود باشد، کامنت حذف می‌شود و با نظر جدیدی که حاوی نتیجه فرمول است جایگزین می‌شود. پس از آن مقدار سلول ها و همچنین یک نظر با همان شماره نمایش داده می شود. به جای CStr می توانید از تابع Format برای نمایش مقدار به هر شکلی که می خواهید استفاده کنید.

شما همچنین می توانید یک ماکرو ایجاد کنید که هر زمان که محتوای یک سلول خاص را به روز می کنید، نظر را تغییر می دهد. به عنوان مثال، اجازه دهید بگوییم که هر بار که شخصی تغییری در سلول C11 ایجاد می‌کند، می‌خواهید نتیجه هر آنچه در آن سلول است در یک نظر متصل به سلول F15 قرار گیرد. ماکرو زیر دقیقاً این کار را انجام می دهد:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sResult As String

    If Union(Target, Range("C11")).Address = Target.Address Then
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        sResult = Target.Value
        Target.ClearContents

        With Range("F15")
            .ClearComments
            .AddComment
            .Comment.Text Text:=sResult
        End With
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub

هنگامی که شخصی فرمول (یا مقدار) را در سلول C11 وارد می کند، نتایج آن فرمول (یا خود مقدار) در نظری که به سلول F15 متصل است قرار می گیرد. از آنجایی که این یک ماکرو راه‌اندازی رویداد است، باید در پنجره کد صفحه کاری که در آن کار می‌کند وارد شود.

در نهایت، ممکن است بخواهید ماکرو خود را بر یک ستون کامل نظارت کنید. ماکرو زیر از رویداد Change یک کاربرگ استفاده می کند، درست مانند ماکرو قبلی. با این حال، تنها زمانی وارد عمل می‌شود که تغییر در ستون F انجام شود و تنها در صورتی که یک سلول در آن ستون تغییر کند.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Column <> 6 Then Exit Sub

    Dim x As String
    Application.EnableEvents = False
    If Target.HasFormula Then
        x = Evaluate(Target.Formula)
    Else
        x = Target.Text
    End If

    Target.ClearComments
    If Target.Text = "" Then
        Application.EnableEvents = True
        Exit Sub
    End If

    Target.AddComment x
    Target = ""
    Application.EnableEvents = True
End Sub

اگر کاربر تغییری در یک سلول در ستون F ایجاد کند، ماکرو نتیجه آنچه وارد شده را می گیرد و آن را در یک نظر متصل به آن سلول قرار می دهد. سپس محتویات سلول حذف می شود.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 43 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 75 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 34 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 44 visibility
ارسال شده در 27 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

129 نفر آنلاین
0 عضو و 129 مهمان در سایت حاضرند
بازدید امروز: 1568
بازدید دیروز: 25180
بازدید کل: 20338923
...