คุณสามารถทำได้ผ่าน VBA นี่คือรหัสบางส่วนที่คุณสามารถวางลงในวัตถุแผ่นงาน
Private lastRange As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Not lastRange Is Nothing Then
lastRange.Interior.Color = Range("A1").Interior.Color
End If
Else
Set lastRange = Target
End If
End Sub
lastRange
วัตถุจะถูกบันทึกจากการเลือกไปยังการเลือก นี่เป็นวิธีเดียวที่จะให้ VBA จดจำช่วงที่เราต้องการเน้น เมื่อใดก็ตามที่คุณเปลี่ยนการเลือกมันจะตั้งค่าการเลือกเป็น lastRange
เว้นแต่ มันเป็น A1
ซึ่งในกรณีนี้สีที่เลือกก่อนหน้าเป็นสีใด ๆ A1
คือ..
อย่างไรก็ตามจากความคิดเห็นของคุณความต้องการของคุณนั้นกว้างกว่านี้เล็กน้อย เนื่องจากคุณต้องการช่วงของเซลล์ที่มีสีต่าง ๆ นี่อาจเป็นรหัสที่คุณต้องการ:
Private lastRange As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
If Not lastRange Is Nothing Then
lastRange.Interior.Color = Target.Interior.Color
Exit Sub
End If
End If
End If
Set lastRange = Target
End Sub
ตอนนี้มันมีเซลล์มากมาย A1:A5
ที่สามารถเป็นสีที่ต่างกันทั้งหมด หากคุณเลือกเซลล์เดียวในช่วงนั้นมันจะตั้งค่าการเลือกก่อนหน้าของคุณให้เป็นสีเดียวกับเซลล์ปัจจุบัน คุณสามารถปรับ A1:A5
ช่วงเป็นสิ่งที่คุณต้องการ
นี่เป็นสิ่งที่แปลกประหลาดอย่างหนึ่งที่ฉันรู้: ถ้าคุณเลือกช่วงจากนั้นก็เป็นรูปร่าง A1
ช่วงที่คุณเลือกไว้ก่อนหน้านี้จะถูกเก็บไว้เป็น lastRange
. อาจเป็นไปได้ แต่ฉันไม่ทราบกรณีการใช้ของคุณ