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

جوزف از رگرسیون برای تعیین نتیجه ترکیب رنگ استفاده می کند. او دوست دارد یک سلول بر اساس داده های مقدار RGB یا HEX موجود در یک سلول رنگی شود، اما می داند که هیچ راهی برای انجام این کار وجود ندارد. بنابراین، او در نهایت سلول ها را به صورت دستی رنگ آمیزی می کند. اکثر صفحات کار او صدها رنگ دارند، بنابراین این بسیار خسته کننده است. جوزف به این فکر می کند که آیا راهی برای رنگ آمیزی خودکار یک سلول بر اساس مقادیر RGB یا HEX موجود در سلول دیگر وجود دارد؟

بله، این کار را می توان با استفاده از ماکرو انجام داد. به طور مناسب تر، می توان آن را با استفاده از یک رویداد کنترل کننده انجام داد که یک نوع ویژه از ماکرو است که به طور خودکار بر اساس یک "رویداد" که در اکسل رخ می دهد اجرا می شود. در این حالت می‌توانید یک کنترلر رویداد ایجاد کنید که هر زمان که چیزی در کاربرگ شما تغییر می‌کند اجرا می‌شود، مانند این:

Private Sub Worksheet_Change(ByVal Target As Range)
    Range(A2).Interior.Color = CLng("&H" & Range("A1").Value)
End Sub

این ماکرو باید در کد برگه‌ای که می‌خواهید روی آن تأثیر بگذارد قرار داده شود، بنابراین بر روی برگه کاربرگ راست کلیک کرده و View Code را از منوی Context ایجاد شده انتخاب کنید. سپس می توانید کد را در پنجره کدی که نشان داده شده است، قرار دهید.

این ماکرو خاص فرض می کند که مقدار هگز مورد نظر در سلول A1 است و سپس رنگ A2 را بر اساس آن مقدار هگز تغییر می دهد. استفاده از ماکرو استفاده شما از اکسل را کمی کند می کند، زیرا هر بار که چیزی در کاربرگ تغییر می کند اجرا می شود. اگر ترجیح می دهید رنگ ها را فقط با اجرای دستی ماکرو تغییر دهید، می توانید به جای آن از این تغییر استفاده کنید:

Sub SetColors()
    Dim rSource As Range
    Dim rTarget As Range
    Dim J As Integer

    Set rSource = Range("A1:A50")
    Set rTarget = Range("D1:D50")

    For J = 1 To rSource.Cells.Count
        rTarget.Cells(J).Interior.Color = CLng("&H" & rSource.Cells(J).Value)
    Next J
End Sub

وقتی این ماکرو را اجرا می کنید، به محدوده اختصاص داده شده به متغیر rSource (A1:A50) نگاه می کند و از مقادیر آن محدوده برای تنظیم رنگ ها در محدوده اختصاص داده شده به متغیر rTarget (D1:D50) استفاده می کند. با فرض تغییر محدوده های اختصاص داده شده به rSource و rTarget، باید مطمئن شوید که هر دو محدوده دارای تعداد یکسانی سلول هستند.

تا کنون ماکروهای این نکته به سلول منبع حاوی مقدار هگز برای رنگ مورد نظر تکیه کرده‌اند. اگر ترجیح می‌دهید با مقادیر جداگانه RGB برای سلول‌ها کار کنید، در نکته دیگری که ممکن است برایتان مفید باشد، توضیح داده شده است.

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

پاسخ شما

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

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

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

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

96 نفر آنلاین
0 عضو و 96 مهمان در سایت حاضرند
بازدید امروز: 8949
بازدید دیروز: 12076
بازدید کل: 15391360
...