Board logo

標題: [發問] 儲存格規則問題 [打印本頁]

作者: eghost    時間: 2015-12-22 15:49     標題: 儲存格規則問題

各位大大 您好:

目的要使儲存格自動變色  判斷式需有跨分頁判斷某區域的值  詳細問題有寫在檔案裡 煩請協助解疑 或者有其他作法 謝謝
作者: 准提部林    時間: 2015-12-22 17:08

=OR(B$3=INDIRECT("A!$M$4:$M$17"))*(B$3<>"")
=MATCH(B$3,INDIRECT("A!$M$4:$M$17"),)
=RANK(B$3,INDIRECT("A!$M$4:$M$17"))
=COUNTIF(INDIRECT("A!$M$4:$M$17"),B$3)
作者: eghost    時間: 2015-12-22 17:10

回復 2# 准提部林


    感謝版主  可以了  我研究一下 謝謝您
作者: eghost    時間: 2015-12-22 19:25

回復 2# 准提部林

版主您好  :

還有遇到一個問題 卡住了  我試過剛剛版主的四種寫法去搭配AND 但是還是失敗  初學者 抱歉  再請指教 [attach]22929[/attach]
   
增加規則 判讀A! M$4和N$4之間的日期 要顯示黃色  之前在同一工作頁是用AND解決  有辦法在範圍性區域A!(M4:N14)判讀出各組區(M$4 N$4)
作者: 准提部林    時間: 2015-12-22 20:56

回復 4# eghost


=(B$3>INDIRECT("A!M4:M17"))*(B$3<INDIRECT("A!N4:N17"))
作者: eghost    時間: 2015-12-23 17:54

回復 5# 准提部林


    感謝版大解疑  導向小弟不同的應用思維

     目前測試有一問題   A! 設了多組區段時間(起點 終點)  目前只能讀到第一組的區間  之後的區間無法讀出  在煩請版大或各位先進解疑  儲存格皆有確認規則寫入
                                                    [attach]22945[/attach]
作者: 准提部林    時間: 2015-12-23 18:35

本帖最後由 准提部林 於 2015-12-24 09:34 編輯

回復 6# eghost

OFFICE版本太舊, 格式化公式會被吃掉一些字元, 再試試:
=OR((B$3>INDIRECT("A!M4:M17"))*(B$3<INDIRECT("A!N4:N17")))

[attach]22958[/attach]
作者: yen956    時間: 2015-12-24 09:19

試試VBA:
  1. Sub 簡易橫式年曆()
  2.     Dim yy As Integer, mm As Integer, dd As Integer, d2 As Integer, w As Integer
  3.     yy = 2016
  4.     [B2:AF47] = ""
  5.     [B2:AF47].Interior.ColorIndex = xlNone
  6.     For mm = 1 To 12
  7.         d2 = Day(DateSerial(yy, mm + 1, 0))
  8.         For dd = 1 To d2
  9.             Cells(mm * 4 - 1, dd + 1) = DateSerial(yy, mm, dd)
  10.             w = Weekday(Cells(mm * 4 - 1, dd + 1), vbSunday)
  11.             Cells(mm * 4 - 2, dd + 1).NumberFormatLocal = "d"
  12.             Cells(mm * 4 - 2, dd + 1).FormulaR1C1 = "=RIGHT(TEXT(R[1]C,""aaa""))"
  13.             If w = 1 Then
  14.                 Cells(mm * 4 - 2, dd + 1).Font.ColorIndex = 3
  15.             ElseIf w = 7 Then
  16.                 Cells(mm * 4 - 2, dd + 1).Font.ColorIndex = 5
  17.             Else
  18.                 Cells(mm * 4 - 2, dd + 1).Font.ColorIndex = 1
  19.             End If
  20.         Next
  21.     Next
  22. End Sub

  23. Sub 漆後資訊()
  24.     Dim shA As Worksheet
  25.     Dim LstR As Integer, I As Integer, J As Integer, eDay As Integer, mNUM As Integer
  26.     Dim Rng As Range, SD As Range, ED As Range, Scel As Range, Ecel As Range
  27.     Set shA = Sheets("A")
  28.     Set Rng = [B3:AF47]
  29.     Rng.Interior.ColorIndex = xlNone
  30.     LstR = shA.[M4].End(xlDown).Row
  31.     For I = 4 To LstR
  32.         Set SD = shA.Cells(I, 13)     'Start Date
  33.         Set ED = shA.Cells(I, 14)     'End Date
  34.         If SD.Value > ED.Value Then
  35.             MsgBox "起始日期:" & SD.Value & " > 終止日期:" & ED.Value & ", 請查明再繼續!!", vbOKOnly
  36.             Exit For
  37.         End If
  38.         Set Scel = Rng.Find(SD, Lookat:=xlWhole)       '在年曆中尋找 Start Date
  39.         If Scel Is Nothing Then
  40.             MsgBox "查無此日期:" & SD & ", 請查明再繼續!!", vbOKOnly
  41.             Exit For
  42.         End If
  43.         Set Ecel = Rng.Find(ED, Lookat:=xlWhole)       '在年曆中尋找 End Date
  44.         If Ecel Is Nothing Then
  45.             MsgBox "查無此日期:" & ED & ", 請查明再繼續!!", vbOKOnly
  46.             Exit For
  47.         End If
  48.         
  49.         If Scel.Row = Ecel.Row Then    '同一月
  50.             Scel.Resize(1, Ecel.Column - Scel.Column + 1).Interior.ColorIndex = 6
  51.         ElseIf Ecel.Row - Scel.Row >= 4 Then    '跨前後月
  52.             eDay = Day(DateSerial(Year(Scel), Month(Scel) + 1, 0))
  53.             Scel.Resize(1, eDay - Scel.Column + 2).Interior.ColorIndex = 6
  54.             Cells(Ecel.Row, "B").Resize(1, Ecel.Column - 1).Interior.ColorIndex = 6
  55.             If Ecel.Row - Scel.Row > 4 Then     '跨兩三月
  56.                 For J = Scel.Row + 4 To Ecel.Row - 4 Step 4
  57.                     Cells(J, "B").Resize(1, Cells(J, "B").End(xlToRight).Column - 1).Interior.ColorIndex = 6
  58.                 Next
  59.             End If
  60.         End If
  61.     Next
  62. End Sub
複製代碼
[attach]22955[/attach]
作者: eghost    時間: 2015-12-25 16:20

回復 8# yen956


    感謝版主和yen956大的vba支援  小弟問題解決了 會研究y大的vba  謝謝兩位大大 ! 感激不盡 !!:loveliness:




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