返回列表 上一主題 發帖

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

回復 1# cowww


    謝謝前輩發表此主題
後學研習方案如下,請前輩參考

執行結果:



Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
   Dim xR As Range, xA As Range
   If .Columns.Count = Columns.CountLarge Then Exit Sub
   If .Count > 1 Or .Column = 1 Then Exit Sub
   Set xR = .Cells: Set xA = Range([B1], Cells(1, Columns.Count)).EntireColumn
   With Intersect(ActiveSheet.UsedRange, xA)
      .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

本帖最後由 Andy2483 於 2023-5-4 09:36 編輯

回復 3# cowww


    謝謝前輩回復
後學學習方案如下,請前輩參考

執行結果:



Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
   Dim xR As Range, xA As Range, xB As Range
   If .Columns.Count = Columns.CountLarge Then Exit Sub
   If .Count > 1 Or .Column = 1 Or .Row = 1 Then Exit Sub
   Set xR = .Cells: Set xA = Range([B1], Cells(1, Columns.Count)).EntireColumn
   Set xB = Range([A2], Cells(Rows.Count, 1)).EntireRow
   With Intersect(ActiveSheet.UsedRange, xA, 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

回復 5# cowww


    謝謝前輩再回復,謝謝論壇
後學學習方案如下,請前輩參考

標題列在第4列,執行結果:



Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
   Dim xR As Range, xA As Range, xB As Range
   If .Columns.Count = Columns.CountLarge Then Exit Sub
   If .Count > 1 Or .Column = 1 Or .Row < 5 Then Exit Sub
   Set xR = .Cells: Set xA = Range([B1], Cells(1, Columns.Count)).EntireColumn
   Set xB = Range([A5], Cells(Rows.Count, 1)).EntireRow
   With Intersect(ActiveSheet.UsedRange, xA, 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

回復 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

回復 11# cowww


    If [B4] <> "燈號" 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

回復 18# cowww

用 准提部林前輩的範例 紅框線改成黃透明填滿
推薦使用此方法,不會變動到儲存格格式

情境1:


情境2:



TEST_選取欄列_20230504_2.zip (16.67 KB)
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 20# cowww


    謝謝前輩回復
Sorry
後學研究很久,搞不懂如何改變核取方塊字體大小.....
請前輩再爬文研究看看
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題