Board logo

標題: [發問] 請問當A1輸入數字4時找出下列資料同數字的公式 [打印本頁]

作者: PD961A    時間: 2010-7-14 08:19     標題: 請問當A1輸入數字4時找出下列資料同數字的公式

excel 2003或以前的 格式化條件 只可以 有3種條件, 再加條件的話要用上vba 寫一個 格式化條件 出來了
kimbal 發表於 2010-7-13 20:39

http://forum.twbts.com/viewthread.php?tid=822
謝謝先進KIMBAL的回文
可以麻煩知道的先進用VBA寫格式化條件嗎?
謝謝..
作者: GBKEE    時間: 2010-7-14 17:46

回復 1# PD961A

你可以試著用錄製新巨集 看看
作者: PD961A    時間: 2010-7-14 18:18

本帖最後由 PD961A 於 2010-7-14 18:22 編輯
回復  PD961A

你可以試著用錄製新巨集 看看
GBKEE 發表於 2010-7-14 17:46



    GBKEE版主..謝謝您
但是可以請問您
當第一列A1.B.C~假設到H1
輸入數字(預設為1~100)
但是底下的資料會變動位子(資料會因為人為輸入而產生重複的地方)
因此當第一列輸入今天作好的數字共8欄(~H欄).....(希望可以不限制到H欄)
EX:31.32.33.34.35.36.37輸入完就可以知道底下哪個資料跟上面這些數字重複了

這樣的情況下要如何錄製新巨集?
謝謝您..
[attach]1865[/attach]
作者: GBKEE    時間: 2010-7-14 19:35

本帖最後由 GBKEE 於 2010-7-14 19:37 編輯

回復 3# PD961A
是不是這個方向
  1. Sub Macro1()
  2. ' Macro1 Macro
  3. ' hsu 在 2010/7/14 錄製的巨集
  4.     Range("A2:H17").Select
  5.     Selection.FormatConditions.Delete
  6.     Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=OR(A2=$A$1,A2=$B$1,A2=$C$1)"
  7. ' 依附檔錄製後修正的"=OR(A2=$A$1,A2=$B$1,A2=$C$1)"
  8.     Selection.FormatConditions(1).Font.ColorIndex = xlAutomatic
  9.     With Selection.FormatConditions(1).Interior
  10.         .ColorIndex = 6
  11.         .Pattern = xlSolid
  12.     End With
  13. End Sub
複製代碼

作者: PD961A    時間: 2010-7-14 19:58

回復 4# GBKEE


    謝謝版主
可以請問是放在一般的Macro1()嗎?
換過數字後沒有改過
謝謝您
[attach]1867[/attach]
作者: GBKEE    時間: 2010-7-14 20:15

回復 5# PD961A
附檔只有一個工作表 程式碼放哪裡都一樣
當程式碼 在SHEET物件中 Range("A2:H17").Select  是指SHEET物件工作表的Range  
當程式碼 在一般Module中 Range("A2:H17").Select  是指做用中SHEET的Range  
你要到 VBA 的視窗中 將滑鼠移到程式碼的範圍裡 按下F5    執行一次  Sub Macro1()程式 才會有作用
作者: Hsieh    時間: 2010-7-14 22:02

回復 5# PD961A


    如果你是2003版以前版本要用條件格式是不能做到3種條件以上
回一般區看原發文有沒有得到解答
如果沒有那就把需求說清楚
作者: victorl    時間: 2010-7-15 00:07

回復 5# PD961A


    小弟我用比較笨的作法,不過呢是可以達到您要的效果就是了
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    For Each a In Range(Me.[a2], Me.[h17])
        Select Case a
            Case Me.[a1]
                a.Interior.ColorIndex = 3
            Case Me.[b1]
                a.Interior.ColorIndex = 4
            Case Me.[c1]
                a.Interior.ColorIndex = 5
            Case Me.[d1]
                a.Interior.ColorIndex = 6
            Case Me.[e1]
                a.Interior.ColorIndex = 7
            Case Me.[f1]
                a.Interior.ColorIndex = 8
            Case Me.[g1]
                a.Interior.ColorIndex = 9
            Case Me.[h1]
                a.Interior.ColorIndex = 10
            Case Else
                a.Interior.Pattern = xlNone
        End Select
    Next
End Sub
作者: kimbal    時間: 2010-7-15 00:31

謝謝先進KIMBAL的回文
可以麻煩知道的先進用VBA寫格式化條件嗎?
謝謝..
PD961A 發表於 2010-7-14 08:19



    我也來解解鈴吧 , 顏色跟第一行的一樣
[attach]1873[/attach]
作者: victorl    時間: 2010-7-15 01:11

回復 9# kimbal


       建議加上一行(紅字)先把既有之顏色消去,若否....第一列(A1~H1)改變數字試試看
              .....
       If c.Row <> 1 Then
             c.Interior.Color = xlNone
             For i = 1 To lngNumCols
              .....
作者: PD961A    時間: 2010-7-15 09:28

回復 10# victorl
回復 9# kimbal

謝謝 victorl及 kimbal先進的回文
kimbal您的檔案可以用但是會出現victorl所說的顏色無法消除
不過我把victorl兄寫的程式碼加入後會無法執行
[attach]1874[/attach]
謝謝您們的回文

作者: PD961A    時間: 2010-7-15 09:32

回復 6# GBKEE


    謝謝GBKEE版主
照您說的步驟檔案可以適用
但是可以再請問您
我將欄位放大
所以程式碼直接修正到"L"欄去..可是會無法執行
可以請您指導嗎?謝謝您...

[attach]1875[/attach]


[attach]1876[/attach]
作者: Hsieh    時間: 2010-7-15 10:58

本帖最後由 Hsieh 於 2010-7-15 11:13 編輯

回復 12# PD961A
[attach]1877[/attach]
以第一列顏色做判斷
先定義名稱x
[attach]1878[/attach]
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Set d = CreateObject("Scripting.Dictionary")
  3. For Each a In Range([A1], [IV1].End(xlToLeft))
  4. d(a.Value) = a.Interior.ColorIndex
  5. Next
  6. [x].Interior.ColorIndex = 0
  7. If Intersect(Target, Union([x], Range([A1], [IV1].End(xlToLeft)))) Is Nothing Then Exit Sub
  8.    For Each a In [x]
  9.      a.Interior.ColorIndex = d(a.Value)
  10.    Next
  11. End Sub
複製代碼

作者: PD961A    時間: 2010-7-15 12:52

回復 13# Hsieh


    版主謝謝您
程式RUN後可以適用
謝謝您
[attach]1879[/attach]
作者: GBKEE    時間: 2010-7-15 15:15

回復 12# PD961A


我將欄位放大 所以程式碼直接修正到"L"欄去..可是會無法執行
  
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=OR(A2=$A$1,A2=$B$1,A2=$C$1,A2=$D$1,A2=$E$1,A2=$F$1,A2=$G$1,A2=$H$1,A2=$I$1,A2=$J$1,A2=$K$1,A2=$L$1)"




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