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

Wendy یک کاربرگ دارد که اطلاعات کمی در آن وجود دارد، با داده های اصلی در محدوده C3:P312. او مایل است یک ماکرو داشته باشد که اگر روی سلولی در این محدوده داده کلیک کند، یک "x" را در سلول قرار دهد.

هیچ رویدادی وجود ندارد که اکسل بتواند آن را به عنوان "کلیک" روی یک سلول تشخیص دهد. شاید نزدیکترین رویداد، رویداد SelectionChange باشد که هر بار که انتخاب سلول تغییر می کند، فعال می شود. سپس کنترل کننده رویداد می تواند بررسی کند که سلول انتخاب شده در محدوده C3:P312 قرار دارد و سپس در صورت وجود یک "x" در سلول قرار دهد. کنترل کننده رویداد زیر این کار را انجام می دهد:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rInt As Range
    Dim rCell As Range

    Set rInt = Intersect(Target, Range("C3:P312"))
    If Not rInt Is Nothing Then
        For Each rCell In rInt
            rCell.Value = "x"
        Next
    End If
    Set rInt = Nothing
    Set rCell = Nothing
End Sub

با این حال، این رویکرد مشکلی دارد: نه تنها رویداد SelectionChange هنگامی که روی سلول دیگری کلیک می کنید فعال می شود، بلکه اگر از صفحه کلید برای جابه جایی از یک سلول به سلول دیگر در کاربرگ استفاده کنید، فعال می شود. این بدان معناست که اگر از صفحه کلید برای حرکت در کاربرگ استفاده کنید، در هر سلولی که انتقال می دهید دنباله ای از کاراکترهای "x" باقی می ماند.

یک راه حل این مشکل، تغییر رویدادی است که باعث بررسی و تغییر سلول ها می شود. در حالی که اکسل رویداد "کلیک" ندارد، رویداد "دوبار کلیک" وجود دارد. این بدان معنی است که شما می توانید سلولی را که روی آن دوبار کلیک می کنید تغییر دهید، همانطور که در اینجا نشان داده شده است:

Private Sub Worksheet_BeforeDoubleClick( _
            ByVal Target As Range, Cancel As Boolean)
    Dim rInt As Range
    Dim rCell As Range

    Set rInt = Intersect(Target, Range("C3:P312"))
    If Not rInt Is Nothing Then
        For Each rCell In rInt
            rCell.Value = "x"
        Next
    End If
    Set rInt = Nothing
    Set rCell = Nothing
    Cancel = True
End Sub
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 38 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 47 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 42 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 33 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 42 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

385 نفر آنلاین
0 عضو و 385 مهمان در سایت حاضرند
بازدید امروز: 15139
بازدید دیروز: 25180
بازدید کل: 20352486
...