Board logo

標題: 請指導如何選取所有符合格式化條件的儲存格 [打印本頁]

作者: Andrewfat    時間: 2021-10-15 16:27     標題: 請指導如何選取所有符合格式化條件的儲存格

請指導如何選取所有符合格式化條件的儲存格,
附件為上班考勤例子,設定格式化條件為當上班時間大於09:00時,上班時間及上班狀況字體變紅加粗。
問題: 我要選取所有變紅加粗字體的儲存格。
目前在正式的每月考勤表內有一百人,6000筆數據(上班及下班),大約有15至20人會遲到早退。要選取大約400個儲存格。
我是按(Shift + F8),然後再一個一個點選,,請指導要如何能一次選取。

先謝謝各位先進。[attach]34227[/attach]
作者: hcm19522    時間: 2021-10-15 17:06

https://blog.xuite.net/hcm19522/twblog/590074934
作者: Andrewfat    時間: 2021-10-16 12:00

謝謝幫忙,我不須要提取資料,只要選取儲存格即可。
因為格式化條件會受其他情況而變化。
上下班時間粗體紅字不可以改變。
所以要選取所有因格式化變成粗體紅字的時間儲存格進行人手加粗變紅。
作者: Andy2483    時間: 2021-10-16 16:26

回復 3# Andrewfat


    試試看!
作者: hcm19522    時間: 2021-10-18 10:22

https://blog.xuite.net/hcm19522/twblog/590077299
作者: Andrewfat    時間: 2021-10-18 14:02

謝謝各位幫忙, VBA 應該是最快捷的方法了。
謝謝 hcm19522
謝謝 Andy2483
作者: samwang    時間: 2021-10-18 14:33

回復 1# Andrewfat

請測試看看,謝謝
Sub test()
Dim Arr, xU
With Cells.Font
   .ColorIndex = 1
   .Bold = False
End With
Arr = Range("e6").CurrentRegion
Set xU = [e6]
For i = 2 To UBound(Arr) Step 2
    For j = 2 To UBound(Arr, 2)
        If Arr(i, j) > Arr(3, 1) Then
            Set xU = Union(Cells(i + 5, j + 4).Resize(2, 1), xU)
        End If
    Next j
Next i
With xU.Font
    .ColorIndex = 3
    .Bold = True
End With
[e6].Interior.ColorIndex = xlNone
End Sub
作者: Andy2483    時間: 2021-10-18 16:29

回復 7# samwang


    感謝前輩分享
1.學到縮小執行範圍
2.學到陣列方式

陣列跟字典很好用!好難學!
謝謝




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