Board logo

標題: [發問] 關鍵字讓列文字變色 [打印本頁]

作者: wayne0303    時間: 2023-10-20 13:30     標題: 關鍵字讓列文字變色

如圖,以vba執行將P欄為"已出圖"的時候,整列到V欄位置的文字變色?

謝謝
作者: shuo1125    時間: 2023-10-20 14:18

回復 1# wayne0303
字體變色是要整列還是限制到V欄?
Sub TEST()
    Dim i&, R&, T$
        R = [P1048576].End(3).Row
        For i = 1 To R
            T = Cells(i, 16)
            If T = "已出圖" Then Rows(i).Font.Color = RGB(128, 128, 128)
        Next
End Sub
簡易碼整列如上~
作者: Andy2483    時間: 2023-10-20 14:33

回復 1# wayne0303

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
   If .Columns.Count > ActiveSheet.UsedRange.Columns.Count Then Exit Sub
   If .Column <> 16 Or .Count > 1 Then Exit Sub
   Range(.Cells(1, -14), .Cells).Font.ColorIndex = IIf(.Value = "已出圖", 16, 1)
End With
End Sub
作者: shuo1125    時間: 2023-10-20 15:06

回復 3# Andy2483
還是Andy大思慮周到且完善~學習了!
作者: hcm19522    時間: 2023-10-20 15:22

https://hcm19522.blogspot.com/2023/10/11912.html
作者: Andy2483    時間: 2023-10-20 15:24

回復 4# shuo1125


    彼此彼此,需求情境猜測不同,思路不同,端看需求
作者: wayne0303    時間: 2023-10-20 18:32

回復 2# shuo1125


    字體變色是要整列還是限制到V欄? 到V欄
    可以執行,謝謝shuo1125大大
作者: wayne0303    時間: 2023-10-20 18:51

回復 3# Andy2483


    Andy大大...我用了代碼沒有反應,是還需要執行什麼嗎?
作者: wayne0303    時間: 2023-10-20 18:52

回復 5# hcm19522


    謝謝hcm大大
作者: Andy2483    時間: 2023-10-20 19:06

本帖最後由 Andy2483 於 2023-10-20 19:09 編輯

回復 8# wayne0303
需要將程式碼放入工作表模組
P欄輸入 已出圖 或 待確認
作者: wayne0303    時間: 2023-10-20 19:53

回復 10# Andy2483


    關鍵字是有的
    我把代碼改貼到工作表還是沒反應?
作者: Andy2483    時間: 2023-10-20 20:19

回復 11# wayne0303
請上傳範例

現在沒辦法幫助你
請其他前輩幫你忙
作者: wayne0303    時間: 2023-10-20 20:34

回復 12# Andy2483


    沒關係,只是想知道您的代碼後續套用是不是比較簡單
    還是謝謝Andy大的幫忙~
作者: Andy2483    時間: 2023-10-20 20:48

回復 13# wayne0303
https://learn.microsoft.com/zh-t ... el.worksheet.change
作者: shuo1125    時間: 2023-10-20 23:08

本帖最後由 shuo1125 於 2023-10-20 23:19 編輯

回復 13# wayne0303
自行看圖八~Andy大代碼的使用方式。
另更新需求程式碼:
>>RGB(255, 0, 0)這可自行換色
---------------------------------------------------------------------------------
Sub TEST()
    Dim i&, R&, T$
    R = [P1048576].End(3).Row
    For i = 1 To R
        T = Cells(i, 16)
        If T = "已出圖" Then
            Range("A" & i & ":V" & i).Font.Color = RGB(255, 0, 0)
        End If
    Next
End Sub
---------------------------------------------------------------------------------
Sub TEST_1()
    Dim xR As Range, xS As Range, wS As Worksheet
    Dim T$
    Set wS = ThisWorkbook.Worksheets(1)
    '假設使用第一個工作表,如有需要請自行調整
    Set xS = wS.Range("P1:P" & wS.Cells(wS.Rows.Count, "P").End(3).Row)
    For Each xR In xS
        T = xR.Value
        If T = "已出圖" Then
            wS.Range("A" & xR.Row & ":V" & xR.Row).Font.Color = RGB(255, 0, 0)
        End If
    Next
End Sub
---------------------------------------------------------------------------------
謝謝~~
[attach]36900[/attach]
作者: 准提部林    時間: 2023-10-21 09:27

V欄..可連選/跳選...貼入"已出圖"或清除
[attach]36901[/attach]
作者: wayne0303    時間: 2023-10-21 14:13

回復 14# Andy2483


    謝謝Andy提供資料~
作者: wayne0303    時間: 2023-10-21 14:15

回復 15# shuo1125


    自行看圖八~Andy大代碼的使用方式。 我知道
   
    謝謝shuo大的熱心幫忙~
作者: wayne0303    時間: 2023-10-21 14:28

回復 16# 准提部林


    可以回復吔!!非常謝謝准大的幫忙~
作者: shuo1125    時間: 2023-10-21 16:18

回復 16# 准提部林
准大總是讓人欽佩...學習了!!
作者: wayne0303    時間: 2023-10-21 16:52

回復 16# 准提部林


    准大不好意思~我的關鍵字是要在P欄,變色才是到V欄是要怎麼改呢?
作者: shuo1125    時間: 2023-10-21 17:36

回復 21# wayne0303
嘗試微修了一下准大提供的程式碼...謝謝。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xA As Range, xR As Range
Set xA = Intersect(Target, Range("P:P"))
If xA Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each xR In xA
    Range(Cells(xR.Row, 1), Cells(xR.Row, 22)).Font.ColorIndex = 15 ^ -(xR = "已出圖")
Next
End Sub
作者: wayne0303    時間: 2023-10-21 20:44

本帖最後由 wayne0303 於 2023-10-21 20:50 編輯

回復 22# shuo1125


    先謝謝shuo大的幫忙~
    但不知是不是我P欄有公式影響的關係,用工作表的程式碼執行都沒反應,用打字key入倒是可以...
    所以結果只能走您 15#提供的模組程式碼執行,但是這樣應該就沒有辦法做像准大那種回復這個動作了吧
   
    以上,謝謝大大們的幫忙~
作者: 准提部林    時間: 2023-10-21 21:45

回復 23# wayne0303


P欄是公式, 只能 1)格式條件  2)按鈕執行
作者: Andy2483    時間: 2023-10-21 22:15

回復 23# wayne0303


    讓P欄格公式變成 已出圖 的源頭欄位做觸發
例如以O欄輸入 日期(出圖日),P欄公式就會變成 已出圖
如果是這種情境 就觸發O欄
還是建議上傳個範例
作者: wayne0303    時間: 2023-10-21 22:53

回復 24# 准提部林


    原來如此~
    感謝准大的說明~
作者: wayne0303    時間: 2023-10-21 23:00

回復 25# Andy2483


    感謝Andy大的提點得以應用工作表的程式碼執行了~謝謝
作者: wayne0303    時間: 2023-10-23 09:58

本帖最後由 wayne0303 於 2023-10-23 10:10 編輯
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xA As Range, xR As Range
Set xA = Intersect(Target, Range("P:P"))
If xA Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each xR In xA
    Range(Cells(xR.Row, 1), Cells(xR.Row, 22)).Font.ColorIndex = 15 ^ -(xR = "已出圖")
Next
End Sub


    不好意思,想請問可以用這個程式碼將關鍵字改成關鍵字內只要有"假"(例如事假、病假...之類,萬用字元的代碼)或"出差"就有反應,這樣嗎?

    謝謝~
作者: Andy2483    時間: 2023-10-23 13:46

回復 28# wayne0303


15 ^ -(xR = "已出圖")   改成
15 ^ -((xR Like "*假") + (xR = "出差") <> 0)
作者: wayne0303    時間: 2023-10-23 14:08

回復 29# Andy2483


    喔喔喔~萬用字元是用 Like "*"
    謝謝Andy大大~
作者: Andy2483    時間: 2023-10-23 14:30

回復 30# wayne0303


最右邊的字是"假"也可以
Right(xR, 1) = "假"
作者: wayne0303    時間: 2023-10-23 14:35

回復 31# Andy2483


    好喔~謝謝Andy大
作者: Andy2483    時間: 2023-10-23 14:38

回復 32# wayne0303

列出的方法:
15 ^ -(InStr("/事假/病假/出差/離職/特休/", "/" & xR & "/") > 0)
作者: wayne0303    時間: 2023-10-23 15:44

回復 33# Andy2483


    是不需要那麼多選項啦XD
    謝謝熱心的Andy大大~
作者: Andy2483    時間: 2023-10-25 08:02

本帖最後由 Andy2483 於 2023-10-25 08:04 編輯

回復 16# 准提部林
回復 1# wayne0303

謝謝 准提部林前輩指導,學習心得如下,請前輩再指教

[attach]36909[/attach]




Private Sub Worksheet_Change(ByVal Target As Range)
'↑當使用者或外部連結變更工作表中的儲存格時會發生此事件
https://learn.microsoft.com/zh-t ... el.worksheet.change
Dim xA As Range, xR As Range
'↑宣告(xA,xB)是儲存格變數
Set xA = Intersect(Target, Range("V:V"))
'↑令這xA儲存格變數是(觸發格與V欄儲存格)交集的儲存格
If xA Is Nothing Then Exit Sub
'↑如果xA變數是空的!就結束程序執行
Application.ScreenUpdating = False
'↑令螢幕暫時停止變化
For Each xR In xA
'↑設逐項迴圈!令xR這儲存格變數是xA變數裡的一個儲存格
    Range(Cells(xR.Row, 1), xR).Font.ColorIndex = 15 ^ -(xR = "已出圖")
    '↑令xR變數所在列的第1欄儲存格到xR變數間的字色是邏輯計算後的色號
    '當xR = "已出圖":(True)  >>  15 ^ -(-1)   >>  15
    '當xR = "已出圖":(False)  >>  15 ^ -(0)   >>  1

Next
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)