Board logo

標題: 請問如何一次變更多個儲存格的條件格式 [打印本頁]

作者: leefing    時間: 2012-2-5 17:38     標題: 請問如何一次變更多個儲存格的條件格式

如題
那麼判斷式是   成交價>昨收價為紅色
                             成交價<昨收價為綠色
如果很多格要一起做同樣的事情,該如何解決呢?
作者: myshowin    時間: 2012-2-5 18:27

格式→設定格式化條件
作者: leefing    時間: 2012-2-5 20:31

那如果用VBA的方式來執行呢?
作者: 棋語鳥鳴    時間: 2012-2-5 21:48

也可以使用"複製格式"的刷子,可以快很多!!
作者: mark15jill    時間: 2012-2-6 08:53

簡單來說 ..
IF  A(成交價)>B(昨收價) then
   range("xx").select '(儲存格選取)
      With Selection.Interior
          .Pattern = xlSolid
          .PatternColorIndex = xlAutomatic
          .Color = 255
          .TintAndShade = 0
          .PatternTintAndShade = 0
      End With
  endif
    IF  A(成交價)>B(昨收價) then
   range("xx").select '(儲存格選取)
     
         With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
作者: GBKEE    時間: 2012-2-6 09:47

回復 3# leefing
上傳檔案看看
作者: leefing    時間: 2012-2-6 21:53

回復 6# GBKEE


    [attach]9471[/attach]
檔案上傳了,那個條件格式目前我是用手動的,但是覺得有點麻煩
畢竟目前東西少少的
作者: register313    時間: 2012-2-6 23:54

回復 7# leefing
  1. Sub QQ()
  2. For R = 2 To [A65536].End(xlUp).Row
  3.   If Cells(R, "F") < Cells(R, "Q") Then
  4.      Cells(R, "F").Interior.ColorIndex = 35
  5.   ElseIf Cells(R, "F") > Cells(R, "Q") Then
  6.      Cells(R, "F").Interior.ColorIndex = 38
  7.   Else: Cells(R, "F").Interior.ColorIndex = xlNone
  8.   End If
  9. Next R
  10. End Sub
複製代碼
[attach]9474[/attach]
作者: leefing    時間: 2012-2-7 02:00

回復 8# register313


    哇,謝謝R大,整個就是很簡潔

我以為還要宣告一堆。這樣就可以應用很多地方了!
作者: leefing    時間: 2012-2-7 02:33

回復 8# register313


    我把VBA貼回excel檔,結果沒反應 ,是因為我的是連DDE的嗎?
我下載你的檔案按  有用,  但是到別張sheet就沒反應了
作者: GBKEE    時間: 2012-2-7 08:22

回復 7# leefing
  1. Sub Ex()
  2.     'With Range("F2:F" & Rows.Count).SpecialCells(xlCellTypeVisible).FormatConditions
  3.       '上式  為F欄中有資料數值的儲存格: 設定格式化條件  可節省系統資源.
  4.     With Range("F2:F" & Rows.Count).FormatConditions     '整列 設定格式化條件 消耗系統 資源較大
  5.       .Delete                                   '刪除全部設定格式化條件
  6.       .Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=RC[11]" '   '條件一
  7.       'Add 的 參數可錄製得到,
  8.       'RC[11]:  為[欄名列號表示法]  工作表指令->工具->選項->一般 勾選 [欄名列號表示法]
  9.       .Item(1).Interior.ColorIndex = 35          '圖樣顏色
  10.       .Item(1).Font.ColorIndex = 10               '文字顏色
  11.       .Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=RC[11]"           '條件二
  12.       .Item(2).Interior.ColorIndex = 38
  13.       .Item(2).Font.ColorIndex = 13
  14.      End With
  15. End Sub
複製代碼

作者: leefing    時間: 2012-2-7 16:07

回復 11# GBKEE


    謝謝G大的回覆
現在已經可以使用了,但是我有一個疑問,
就是為什麼不是 RC17 而是RC[11]呢?
昨收價不是在17嗎?
作者: GBKEE    時間: 2012-2-7 16:26

回復 12# leefing
如列號 R=5    RC17= $Q$5     ->每一個儲存格格式的公式皆為 固定在  $Q$5
[相對位置]      RC[11]-> F5  右移11欄  在相對的位置
如 F10      儲存格格式公式會  相對在  $Q$10
如 F11      儲存格格式公式會  相對在  $Q$11
作者: leefing    時間: 2012-2-8 17:35

回復 13# GBKEE


    謝謝G大,這樣我懂了!!!




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