Board logo

標題: [發問] 依欄位條件自動變色 與 儲存格內的公式向下填滿 [打印本頁]

作者: 蝕光迴狼    時間: 2014-11-21 10:58     標題: 依欄位條件自動變色 與 儲存格內的公式向下填滿

以下有多個條件想同時達成,請問前輩程式該如何寫?

A7欄位公式:
  1. =IF(C7="","",LOOKUP(C7,{0,701,1301,1501,1701},{"B","A","S","S+","SS"}))
複製代碼
B7欄位公式:
  1. =IF(C7="","",RANK(C7,C:C ))
複製代碼
1. 想依【C列】(直行) 去做【判斷最後一筆資料位置】將【A7欄位】與【B7欄位】以下的欄位自動填滿。
2. 依【A列】(直行)去做判斷,將【A7欄位】與【G7欄位】改成同樣的欄位底色,向下欄位同樣條件。

※ 因有多個顏色條件,故無法用【設定格式化條件】


有做一個指令按鈕,程式碼如下:(希望可以把以上條件全加進來)
  1. Private Sub CommandButton1_Click()

  2.     Rows("6:6").AutoFilter   '自動篩選(要篩選列的位置)
  3.     Range("A7:M200").Sort Key1:=Range("C7"), Order1:=xlDescending, Header:=xlGuess   '自動排列大小(遞減排序)
  4.     ActiveSheet.AutoFilterMode = False   '關閉自動篩選

  5. End Sub
複製代碼

作者: GBKEE    時間: 2014-11-21 17:08

回復 1# 蝕光迴狼
試試看
  1. Option Explicit
  2. Private Sub CommandButton1_Click()
  3.     Dim Rng(1 To 2) As Range
  4.     Set Rng(1) = Range("c7", Range("c" & Rows.Count).End(xlUp))
  5.     If Rng(1).Cells(1) = Range("c6") Then MsgBox "分數欄 沒有資料": Exit Sub
  6.    
  7.     With Range("A6").Resize(Rng(1).Rows.Count + 1, 7)
  8.         .Interior.ColorIndex = xlNone
  9.         .Sort Key1:=Range("C6"), Order1:=xlDescending, Header:=xlYes  '自動排列大小(遞減排序)
  10.     End With
  11.     For Each E In Rng(1)
  12.                         'A欄公式
  13.         E.Cells(1, -1) = "=IF(RC[2]="""","""",LOOKUP(RC[2],{0,701,1301,1501,1701},{""B"",""A"",""S"",""S+"",""SS""}))"
  14.         E.Cells(1, -1) = E.Cells(1, -1).Value
  15.                         'B欄公式
  16.         E.Cells(1, 0) = "=IF(RC[1]="""","""",RANK(RC[1],C[1]))"
  17.         E.Cells(1, 0) = E.Cells(1, 0).Value
  18.         Set Rng(2) = Range("H:H").Find(E.Cells(1, -1), LOOKAT:=xlWhole)
  19.         E.Cells(1, -1).Interior.ColorIndex = Rng(2).Interior.ColorIndex
  20.         E.Cells(1, 5).Interior.ColorIndex = Rng(2).Interior.ColorIndex
  21.     Next
  22. End Sub
複製代碼

作者: 蝕光迴狼    時間: 2014-11-24 22:24

回復 2# GBKEE


Dear  GBKEE : 感謝您的幫助,但執行時出現【執行階錯誤'91'】與【沒有設定物件變變或With 區塊變數】

 可否再次幫忙,謝謝您∼
作者: GBKEE    時間: 2014-11-25 13:58

回復 3# 蝕光迴狼
  1. For Each E In Rng(1)
  2.                         'A欄公式
  3.         E.Cells(1, -1) = "=IF(RC[2]="""","""",LOOKUP(RC[2],{0,701,1301,1501,1701},{""B"",""A"",""S"",""S+"",""SS""}))"
  4.         E.Cells(1, -1) = E.Cells(1, -1).Value
  5.                         'B欄公式
  6.         E.Cells(1, 0) = "=IF(RC[1]="""","""",RANK(RC[1],C[1]))"
  7.         E.Cells(1, 0) = E.Cells(1, 0).Value
  8.         '******** A欄公式的值 有在"情報區" 嗎? ************************
  9.         '不在會有【執行階錯誤'91'】 的錯誤是【沒有設定物件變變或With 區塊變數】
  10.       '********************************************************
  11.         Set Rng(2) = Range("H:H").Find(E.Cells(1, -1), LOOKAT:=xlWhole)
  12.         If Not Rng(2) Is Nothing Then  '條件式判斷: A欄公式的值 在"情報區" 有找到.排除A欄公式的值 不在"情報區"的錯誤
  13.             E.Cells(1, -1).Interior.ColorIndex = Rng(2).Interior.ColorIndex            
  14.             E.Cells(1, 5).Interior.ColorIndex = Rng(2).Interior.ColorIndex
  15.         End If
  16.     Next
複製代碼





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