Board logo

標題: [發問] 10個各區段的各最大數標示指定底色。 [打印本頁]

作者: ziv976688    時間: 2019-6-12 06:16     標題: 10個各區段的各最大數標示指定底色。

[attach]30842[/attach]
10個區段=將$B71︰AX71分成$B71(含)開始,5欄*9(=到AT欄)+$AU71︰$AX71(4欄)
各單區段的最大數如有2個(含)以上,則都標示指定底色。

請問︰上述列71的10個區段的各最大數標示玫瑰紅(=38號)底色語法?   謝謝!

作者: ziv976688    時間: 2019-6-13 00:07

本帖最後由 ziv976688 於 2019-6-13 00:10 編輯

有爬文找到 :
   'B71:AX71的10個各區段最數大標示底色
        Set Rng = Range("B71:F71")     '第一個範圍
        For i = 0 To 9                      '10個範圍要處裡
            With Rng
                ' *公式一"=(B71=MAX($B71:$F71))*(B71>0)"
                AR(1) = "=(" & Rng(1).Address(0, 0) & "=MAX(" & Rng.Address(0, 1) & "))*(" & Rng(1).Address(0, 0) & ">0)"
                .Select
                .FormatConditions.Delete
                .FormatConditions.Add Type:=xlExpression, Formula1:=AR(1)
                .FormatConditions(1).Interior.ColorIndex = 38
            End With
          Set Rng = Rng.Offset(, Rng.Columns.Count) '**下一個範圍
            If i = 8 Then Set Rng = Rng.Cells(1).Resize(, Rng.Columns.Count - 1)  '最後一段(i=9)只計4欄(AU:AX)
        Next
但我只要有標示底色不要保留公式
作者: ziv976688    時間: 2019-6-13 04:42

本帖最後由 ziv976688 於 2019-6-13 04:53 編輯

經套取n7822123大大原有的程式碼~問題已解決。  謝謝!
Sub Ex()
Dim i%, j%, x%, a%, max%, rg As Range
For i = 1 To 10: x = IIf(i = 10, 4, 5)
  For j = 1 To 10
      a = IIf(j = 10, -1, 0)
      If j = 1 Then
        Set rg = Cells(7 * j, 5 * i - 3).Resize(1, x)
      Else
        Set rg = Union(rg, Cells(7 * j + a, 5 * i - 3).Resize(1, x))
      End If
    Next j
    rg.Interior.Color = -1  '恢復無色
    max = WorksheetFunction.max(rg)
    For Each cel In rg
      If cel = max Then cel.Interior.Color = RGB(255, 255, 0)
   Next
        Set rg = Cells(71, 5 * i - 3).Resize(1, x)
    rg.Interior.Color = -1  '恢復無色
    max = WorksheetFunction.max(rg)
    For Each cel In rg
      If cel = max Then cel.Interior.ColorIndex = 38
   Next

Next i
End Sub
作者: ziv976688    時間: 2019-6-13 14:53

本帖最後由 ziv976688 於 2019-6-13 15:08 編輯

主題︰增寫將10個各單列的B欄︰AX欄之各最大數標示指定字體和顏色的語法

[attach]30845[/attach]
10個單列=7,14,21,28,35,42,49,56,63,70(即各小計列)
欄位範圍 = B︰AX (共49欄)

需求︰將上述10個各單列的欄位範圍之各最大數標示紅顏色14號粗字體的語法?  
請問︰程式碼列18~列28應該如何修改才正確?

誠請各位大大幫忙!謝謝 !
作者: n7822123    時間: 2019-6-14 11:55

本帖最後由 n7822123 於 2019-6-14 11:59 編輯

回復 4# ziv976688


不能在原本for迴圈裡了,原本的迴圈是用幾個當群組找最大值

現在要改群組,所以要跳出原本的迴圈,再新增一個迴圈來寫

另外找不到你要的紅色14號.......我先用紅色3號,話說,第10個小計列應該是第69列吧!?

For R = 1 To 10
  a = IIf(R = 10, -1, 0)
  Set rg = Cells(7 * R + a, 2).Resize(1, 49)
  rg.Font.ColorIndex = 1: rg.Font.Size = 12: rg.Font.Bold = False  '恢復字體格式
  max = WorksheetFunction.max(rg)
  For Each cel In rg
    If cel = max Then cel.Font.ColorIndex = 3: cel.Font.Bold = True
  Next
Next

[attach]30858[/attach]
作者: ziv976688    時間: 2019-6-14 14:24

回復 5# n7822123

萬分感激你一再耐心的指導和幫忙。謝謝




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