標題:
[發問]
依欄位條件自動變色 與 儲存格內的公式向下填滿
[打印本頁]
作者:
蝕光迴狼
時間:
2014-11-21 10:58
標題:
依欄位條件自動變色 與 儲存格內的公式向下填滿
以下有多個條件想同時達成,請問前輩程式該如何寫?
A7欄位公式:
=IF(C7="","",LOOKUP(C7,{0,701,1301,1501,1701},{"B","A","S","S+","SS"}))
複製代碼
B7欄位公式:
=IF(C7="","",RANK(C7,C:C ))
複製代碼
1. 想依【C列】(直行) 去做【判斷最後一筆資料位置】將【A7欄位】與【B7欄位】以下的欄位自動填滿。
2. 依【A列】(直行)去做判斷,將【A7欄位】與【G7欄位】改成同樣的欄位底色,向下欄位同樣條件。
※ 因有多個顏色條件,故無法用【設定格式化條件】
有做一個指令按鈕,程式碼如下:(希望可以把以上條件全加進來)
Private Sub CommandButton1_Click()
Rows("6:6").AutoFilter '自動篩選(要篩選列的位置)
Range("A7:M200").Sort Key1:=Range("C7"), Order1:=xlDescending, Header:=xlGuess '自動排列大小(遞減排序)
ActiveSheet.AutoFilterMode = False '關閉自動篩選
End Sub
複製代碼
作者:
GBKEE
時間:
2014-11-21 17:08
回復
1#
蝕光迴狼
試試看
Option Explicit
Private Sub CommandButton1_Click()
Dim Rng(1 To 2) As Range
Set Rng(1) = Range("c7", Range("c" & Rows.Count).End(xlUp))
If Rng(1).Cells(1) = Range("c6") Then MsgBox "分數欄 沒有資料": Exit Sub
With Range("A6").Resize(Rng(1).Rows.Count + 1, 7)
.Interior.ColorIndex = xlNone
.Sort Key1:=Range("C6"), Order1:=xlDescending, Header:=xlYes '自動排列大小(遞減排序)
End With
For Each E In Rng(1)
'A欄公式
E.Cells(1, -1) = "=IF(RC[2]="""","""",LOOKUP(RC[2],{0,701,1301,1501,1701},{""B"",""A"",""S"",""S+"",""SS""}))"
E.Cells(1, -1) = E.Cells(1, -1).Value
'B欄公式
E.Cells(1, 0) = "=IF(RC[1]="""","""",RANK(RC[1],C[1]))"
E.Cells(1, 0) = E.Cells(1, 0).Value
Set Rng(2) = Range("H:H").Find(E.Cells(1, -1), LOOKAT:=xlWhole)
E.Cells(1, -1).Interior.ColorIndex = Rng(2).Interior.ColorIndex
E.Cells(1, 5).Interior.ColorIndex = Rng(2).Interior.ColorIndex
Next
End Sub
複製代碼
作者:
蝕光迴狼
時間:
2014-11-24 22:24
回復
2#
GBKEE
Dear GBKEE : 感謝您的幫助,但執行時出現【執行階錯誤'91'】與【沒有設定物件變變或With 區塊變數】
可否再次幫忙,謝謝您∼
作者:
GBKEE
時間:
2014-11-25 13:58
回復
3#
蝕光迴狼
For Each E In Rng(1)
'A欄公式
E.Cells(1, -1) = "=IF(RC[2]="""","""",LOOKUP(RC[2],{0,701,1301,1501,1701},{""B"",""A"",""S"",""S+"",""SS""}))"
E.Cells(1, -1) = E.Cells(1, -1).Value
'B欄公式
E.Cells(1, 0) = "=IF(RC[1]="""","""",RANK(RC[1],C[1]))"
E.Cells(1, 0) = E.Cells(1, 0).Value
'******** A欄公式的值 有在"情報區" 嗎? ************************
'不在會有【執行階錯誤'91'】 的錯誤是【沒有設定物件變變或With 區塊變數】
'********************************************************
Set Rng(2) = Range("H:H").Find(E.Cells(1, -1), LOOKAT:=xlWhole)
If Not Rng(2) Is Nothing Then '條件式判斷: A欄公式的值 在"情報區" 有找到.排除A欄公式的值 不在"情報區"的錯誤
E.Cells(1, -1).Interior.ColorIndex = Rng(2).Interior.ColorIndex
E.Cells(1, 5).Interior.ColorIndex = Rng(2).Interior.ColorIndex
End If
Next
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)