جیم نوشت و پرسید که اگر رنگ پس زمینه سلول A1 در Sheet1 تغییر کند چگونه به طور خودکار رنگ پس زمینه سلول A1 در Sheet2 را تغییر دهیم تا با رنگ پس زمینه سلول A1 در Sheet1 مطابقت داشته باشد.
پاسخ به این سوال بستگی به این دارد که آیا سلول Sheet1!A1 به دلیل قالب بندی شرطی تغییر رنگ می دهد یا اینکه رنگ به دلیل تغییر صریح رنگ توسط کاربر تغییر می کند.
باور کنید یا نه، اگر تغییر رنگ نتیجه قالب بندی مشروط باشد، پاسخ آسان است - تنها کاری که باید انجام دهید این است که یک قانون قالب بندی شرطی را به سلول Sheet2!A1 اضافه کنید که اساساً همان قانون مورد استفاده برای سلول Sheet1!A1. تنها تفاوت احتمالی این است که قانون شما برای Sheet2!A1 ممکن است نیاز به ارجاعات کاربرگ داشته باشد، مانند موارد استفاده شده در این پاراگراف.
اگر رنگ Sheet1!A1 به دلیل تغییر توسط کاربر در حال تغییر است، باید از ماکرو استفاده کنید. متأسفانه، هیچ ورک بوک یا رویداد کاربرگ وجود ندارد که بتواند تغییرات رنگ را در یک سلول کنترل کند. با این حال، می توانید یک کنترلر رویداد ایجاد کنید که هر زمان که کاربر Sheet2 را فعال کرد، اجرا می شود. (این امر منطقی است؛ کاربر تنها زمانی می تواند آنچه را در سلول A1 در آن برگه وجود دارد ببیند که برگه فعال شود.) در اینجا یک مثال کنترل کننده رویداد است که می تواند به صفحه کد Sheet2 اضافه شود:
Private Sub Worksheet_Activate()
Dim rSource As Range
Set rSource = Worksheets("Sheet1").Range("A1")
Range("A1").Interior.Color = rSource.DisplayFormat.Interior.Color
End Sub
جالب است که این ماکرو حتی اگر رنگ Sheet1!A1 تحت تأثیر یک قانون قالب بندی شرطی قرار گیرد، کار خواهد کرد. راز استفاده از شی DisplayFormat است که فرمت را همانطور که نمایش داده می شود نشان می دهد، نه آنطور که به طور صریح فرمت شده است.