返回列表 上一主題 發帖

[發問] VBA點選儲存格指定範圍自動反色

本帖最後由 n7822123 於 2018-12-9 15:46 編輯

回復 10# Hyuan

是這樣嗎? 紅色字部分請自行更改!
我沒有用到定義名稱的部分

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set 範圍 = [C4:H10]   '請自行更改要變色範圍,下面程式的顏色也自行更改
If Intersect(Target, 範圍) Is Nothing Then Exit Sub '選取範圍與設定範圍無交集則離開
範圍.Interior.ColorIndex = -4142 '先恢復無顏色
For Each rg In Target  '逐一確認選取的範圍,若在設定範圍內則整列變色(選取的範圍有可能在設定範圍外)
  If Not Intersect(rg, 範圍) Is Nothing Then Cells(rg.Row, 範圍(1).Column).Resize(, 範圍.Columns.Count).Interior.Color = RGB(100, 255, 255)
Next
Intersect(Target, 範圍).Interior.Color = RGB(255, 0, 0) '逐一確認選取的範圍,然後變色
End Sub

儲存格變色.rar (11.11 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2018-12-9 20:23 編輯

回復 14# Hyuan

紅色字部分,可自行更改

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set 範圍 = [I7:O18]   '請自行更改要變色範圍,下面程式的顏色也自行更改
If Intersect(Target, 範圍) Is Nothing Then Exit Sub '選取範圍與設定範圍無交集則離開
範圍.Interior.ColorIndex = -4142 '先恢復無顏色
For Each rg In Target  '逐一確認選取的範圍,若在設定範圍內則整列變色(選取的範圍有可能在設定範圍外)
  If Not Intersect(rg, 範圍) Is Nothing Then Cells(rg.Row, 範圍(1).Column).Resize(, 範圍.Columns.Count).Interior.Color = RGB(255, 255, 0)
  If Not Intersect(rg, 範圍) Is Nothing Then Cells(範圍(1).Row, rg.Column).Resize(範圍.Rows.Count).Interior.Color = RGB(255, 255, 0)
Next
Intersect(Target, 範圍).Interior.Color = RGB(255, 0, 0) '確認選取的範圍,然後變色
End Sub

TT20170225-02(選取儲存格,列變色)+1.rar (9.18 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 16# Hyuan


  已回覆你了,上上樓
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題