返回列表 上一主題 發帖

[發問] 選擇單元格時欄列變色

本帖最後由 准提部林 於 2023-5-4 10:56 編輯

這個填色方法//
1) 影響儲存格的原有底色(包含選取區的範圍)
2) 不能使用複製或還原功能

TOP

回復 8# cowww


    謝謝論壇,謝謝各位前輩,請各位前輩指教

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
'↑以下是關於觸發的程序
   Dim xR As Range, xA As Range, xB As Range
   '↑宣告(xR,xA,xB)是 儲存格變數
   If .Columns.Count = Columns.CountLarge Then Exit Sub
   '↑如果觸發欄數是 最大欄數!就結束程式執行
   If .Count > 1 Or .Column = 1 Or .Row < 5 Then Exit Sub
  '↑如果觸發格數大於1 或 觸發欄位數是1(A欄) 或觸發列號小於 5!就結束程式執行
   Set xR = .Cells: Set xA = Range([B1], Cells(1, Columns.Count)).EntireColumn
   '↑令xR這儲存格變數是 觸發的儲存格
   '↑令xA這儲存格變數是 ([B1]到 第1列最後欄範圍存格)所在欄的全部儲存格

   Set xB = Range([A5], Cells(Rows.Count, 1)).EntireRow
   '↑令xB這儲存格變數是 ([A5]到 A欄最後列範圍存格)所在列的全部儲存格
   With Intersect(ActiveSheet.UsedRange, xA, xB)
   '↑以下是關於三個儲存格區域交集後的儲存格區域 程序
   '1.本表有使用的儲存格 :2.xA變數 :3.xB變數

      .Interior.ColorIndex = xlNone
      '↑令此區域儲存格底色是 無色
      Intersect(xR.EntireRow, .Cells).Interior.ColorIndex = 6
      '↑令觸發格所在此區域儲存格列底色是 黃色
      Intersect(xR.EntireColumn, .Cells).Interior.ColorIndex = 6
      '↑令觸發格所在此區域儲存格欄底色是 黃色
   End With
   .Interior.ColorIndex = 4
   '↑令觸發格底色是 綠色
End With
End Sub
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復 9# 准提部林

長官說很卡
他說平常不會用到變色的功能
只有報告或開會的時候才會使用

以下是長官的要求
請問有辦法做一個類似button或是開關的功能
要使用變色功能的時候"開啟"
不要使用變色功能的時候"關掉"

TOP

回復 11# cowww


還要考慮整個活頁簿的全部工作表都有這功能~~

TOP

回復 11# cowww


    If [B4] <> "燈號" Then Exit Sub
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

本帖最後由 准提部林 於 2023-5-4 13:41 編輯

簡單範例//
用了一個選取物件//
兩個矩形(可放在資料區右方, 以不影響資料為主)...Range("M1")..可自行更改
若其它工作表也要同樣功能, 將Selection_Change程式及那三個物件複製即可(注意:物件名稱)

TEST_選取欄列.rar (9.31 KB)


補充//為了防止選取區不在使用範圍內的錯誤, 修改如下
Set X = Intersect(Selection.EntireRow, ActiveSheet.UsedRange)
If X Is Nothing Then Exit Sub
Set Y = Intersect(Selection.EntireColumn, ActiveSheet.UsedRange)
If Y Is Nothing Then Exit Sub

TOP

本帖最後由 Andy2483 於 2023-5-4 14:08 編輯

回復 14# 准提部林


    謝謝前輩指導不變更格式凸顯焦點儲存格的方式


Option Explicit
Sub 命名選取的圖片_名稱()
Selection.ShapeRange.Name = "矩形_橫"
End Sub
Sub 選取的圖片_名稱()
MsgBox Selection.ShapeRange.Name
End Sub
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復 14# 准提部林
准大這方式完全解決變色後的問題,直接用框線來標記真的厲害了...!

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題