返回列表 上一主題 發帖

[發問] 設定格式化的條件

[發問] 設定格式化的條件

例如一張工作表資料如下:
     A    B   C   D
 1 2010/9/1 09:00 AAA AAAA
 2 2010/9/1 09:00 BBB BBBB
 3 2010/9/1 11:00 CCC CCCC
 4 2010/9/1 11:00 DDD DDDD
 5 2010/9/1 15:00 EEE EEEE
 6 2010/9/1 15:00 FFF FFFF
 7 2010/9/2 09:15 GGG GGGG
 8 2010/9/2 09:15 HHH HHHH
 9 2010/9/2 15:00 III IIII
10 2010/9/2 15:00 JJJ JJJJ
11 2010/9/2 16:30 KKK KKKK
12 2010/9/2 16:30 LLL LLLL
13 2010/9/3 10:00 MMM MMMM
14 2010/9/3 10:00 NNN NNNN
15 2010/9/3 12:00 OOO OOOO
16 2010/9/3 12:00 PPP PPPP
17 2010/9/3 15:00 QQQ QQQQ
18 2010/9/3 15:00 RRR RRRR
19 2010/9/3 17:00 SSS SSSS
20 2010/9/3 17:00 TTT TTTT

我需要在每天之間一整列畫一條粗實線,以及在每逢15:00的上方畫一條雙線
效果如下:

     A    B   C   D
 1 2010/9/1 09:00 AAA AAAA
 2 2010/9/1 09:00 BBB BBBB
 3 2010/9/1 11:00 CCC CCCC
 4 2010/9/1 11:00 DDD DDDD
����������������������������������������������������������
 5 2010/9/1 15:00 EEE EEEE
 6 2010/9/1 15:00 FFF FFFF
─────────────────────────────
 7 2010/9/2 09:15 GGG GGGG
 8 2010/9/2 09:15 HHH HHHH
����������������������������������������������������������
 9 2010/9/2 15:00 III IIII
10 2010/9/2 15:00 JJJ JJJJ
11 2010/9/2 16:30 KKK KKKK
12 2010/9/2 16:30 LLL LLLL
─────────────────────────────
13 2010/9/3 10:00 MMM MMMM
14 2010/9/3 10:00 NNN NNNN
15 2010/9/3 12:00 OOO OOOO
16 2010/9/3 12:00 PPP PPPP
����������������������������������������������������������
17 2010/9/3 15:00 QQQ QQQQ
18 2010/9/3 15:00 RRR RRRR
19 2010/9/3 17:00 SSS SSSS
20 2010/9/3 17:00 TTT TTTT

請問應如何設置才能顯示如此效果呢?
拜謝∼

回復 1# RJR
設定格式化的條件1 公式  =AND(TEXT($B1,"hh:mm")="15:00",TEXT($B65536,"hh:mm")<>"15:00")
設定格式化的條件2 公式  =$A1<>$A2
選定範圍後作用中儲存格 如圖   




2003版本 設定格式化的條件, 外框的格式沒有 雙橫線可設 .試試vba
  1. Sub Ex()
  2.     Dim Rng As Range, E As Range, T As Boolean
  3.     Set Rng = ActiveSheet.Range("A1:D" & ActiveSheet.[A1].End(xlDown).Row)
  4.     T = False
  5.     Rng.Borders.LineStyle = xlNone
  6.     For Each E In Rng.Rows
  7.         If E.Cells(1, 1) = E.Cells(2, 1) And E.Cells(1, 2) = TimeValue("15:00") And T = False Then
  8.             T = True
  9.             E.Borders(xlTop).LineStyle = xlDouble
  10.         ElseIf E.Cells(1, 1) <> E.Cells(2, 1) And E.Row <> Rng.Cells(Rng.Count).Row Then
  11.              E.Borders(xlEdgeBottom).LineStyle = xlContinuous
  12.              T = False
  13.         End If
  14.     Next
  15. End Sub
複製代碼

TOP

本帖最後由 RJR 於 2010-8-29 17:06 編輯

回復 2# GBKEE

感謝GBKEE撥冗回覆!

但還有少許的疑問,
首先是間隔不同日子的實線並非粗線(儲存格Ctrl+1→外框→線條樣式→右邊倒數第二的那種),
所以想請問若需要粗實線的話,應怎樣設置?

另外是其實我的原文件中每列均有虛線,
VBA中的「Rng.Borders.LineStyle = xlNone」似乎會把虛線消掉,應如何解決?

拜謝∼∼

TOP

回復 3# RJR
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim A As Range
  3. For Each A In Range([B2], [B65536].End(xlUp))
  4.    With A.Offset(, -1).Resize(, 4).Borders(xlEdgeTop)
  5.    If A = TimeValue("15:00:00") And A.Offset(-1, 0) <> TimeValue("15:00:00") Then
  6.       .LineStyle = xlDouble
  7.       ElseIf A.Offset(, -1) <> A.Offset(-1, -1) Then
  8.       .LineStyle = 1
  9.       .Weight = xlThick
  10.       Else
  11.       .LineStyle = 2
  12.       .Weight = xlThin
  13.       End If
  14.    End With
  15. Next
  16. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 4# Hsieh

感謝您的撥冗回覆,
問題成功解決,
謝謝您。

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題