Board logo

標題: 請問:如何尋找黃色底色的儲存格?! [打印本頁]

作者: candy516    時間: 2011-1-16 15:53     標題: 請問:如何尋找黃色底色的儲存格?!

本帖最後由 candy516 於 2011-1-16 23:55 編輯

各位大大你們好~
請問要如何尋找黃色底色的儲存格呢?
我現在可以尋找的儲存個的內容~
(比方說找到:鴻海:)
Cells.Find(What:="鴻海", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
但還是無法寫出"找出黃底的儲存格"?
請問我該改哪裡呢?
:(
作者: linshin1999    時間: 2011-1-16 20:34

回復 1# candy516

Sub 尋找符合條件的儲存格()
    Dim rg As Range
    Dim find_str As String
   
    find_str = "鴻海"
    For Each rg In ActiveSheet.UsedRange
        If rg.Value Like find_str Then
             Union(Selection, rg).Select
        End If
    Next
End Sub

作者: oobird    時間: 2011-1-16 20:51

Application.FindFormat.Interior.ColorIndex = 6
Cells.Find(What:="", After:=[a1], SearchDirection:=xlNext, SearchFormat:=True).Select
作者: candy516    時間: 2011-1-17 00:00

本帖最後由 candy516 於 2011-1-17 00:12 編輯

大大你們好~
    根據以上兩位大大的方法我還是無法正確找出黃色底色的儲存格,
在此我附上檔案,我舉例一下:像是2010的SHEET中,A欄的1225 福懋油,
黃底是在2010/9/7,我必須先用程式找出這一個儲存格,然後再去作運算!
    可是我試了好久,都沒辦法找出來耶!:(
謝謝你們耐心回答~
作者: oobird    時間: 2011-1-17 08:20

Sub YY()
Application.FindFormat.Interior.ColorIndex = 6
With ActiveSheet
For i = 1 To .Columns.Count
Set c = .Columns(i).Find(What:="", After:=.Cells(65536, i), SearchDirection:=xlNext, SearchFormat:=True)
If Not c Is Nothing Then MsgBox c.Address
Next
End With
End Sub
作者: linshin1999    時間: 2011-1-17 09:25

木工版主你好:有關 Interior.ColorIndex 那裡可以找到 List, 如果知道請告知,謝謝!!
作者: linshin1999    時間: 2011-1-17 09:37

回復 4# candy516


    candy妳好:首先妳要確定 ColorIndex 是不是木工版主所提供的 "6", 因為黃色有很多種黃,如果是在這裡出問題那可會讓妳白忙了,看了木工版主的程式應該没問題,我提供給妳的是已經知道儲存格的內容,所以用 "鴻海" 去找, 因為妳並没提供 ColorIndex 值, 妳也可以用木工版主的程式,然後將 ColorIndex 改一改試試看.
作者: oobird    時間: 2011-1-17 10:40

木工版主你好:有關 Interior.ColorIndex 那裡可以找到 List, 如果知道請告知,謝謝!!
linshin1999 發表於 2011-1-17 09:25



    For I = 1 To 56
Cells(I, 1).Interior.ColorIndex = I
Next
這樣跑一下就有了
作者: linshin1999    時間: 2011-1-17 14:47

回復 8# oobird


    謝了!!
作者: Hsieh    時間: 2011-1-17 16:33

回復 4# candy516

因為2007與2003對顏色的設定差別相當大
所以除非你是以儲存格格式做搜尋
若以colorindex值搜尋就會失去準確性
所以在妳另一帖中我以sheet1數據來搜尋會比較準確
作者: candy516    時間: 2011-1-17 16:53

回復 7# linshin1999


    是ColorIndex 是6沒有錯!
   
    真心的謝謝你的幫忙!
作者: candy516    時間: 2011-1-17 16:54

回復 5# oobird


    謝謝你的幫忙!
作者: candy516    時間: 2011-1-17 16:57

回復 10# Hsieh


    原來2003和2007還有這樣的分別啊!
對於我這樣的初學者來說,讓我有多學會一個知識!
真是多虧你的幫忙!^^
作者: FAlonso    時間: 2011-1-17 17:06

本帖最後由 FAlonso 於 2011-1-17 17:22 編輯

首先解決格子底色問題
用下列程式試試其顏色編號
  1. Sub abc()
  2. Dim i
  3. i = Sheet1.Range("A1").Interior.ColorIndex '修改目標地址
  4. MsgBox i
  5. End Sub
複製代碼
然後
  1. Option Explicit
  2. Sub choosesheet()
  3. Dim myyear As String, mystock As String
  4. Dim myfind As Range, myrange As Range, mycell As Range

  5. thisworkbook.activate

  6. myyear = Application.InputBox(myyear, "Enter year")

  7. If IsNumeric(myyear) Then
  8.     If myyear < 2001 Or myyear > 2010 Then
  9.     MsgBox "Out of Range"
  10.     Exit Sub
  11.     Else
  12.     Sheets(myyear).Activate
  13.     End If
  14. Else
  15. MsgBox "Not A Number"
  16. Exit Sub
  17. End If

  18. mystock = Application.InputBox(mystock, "Enter Stock Name")

  19. With Sheets(myyear)
  20. Set myfind = .Rows(1).Find(what:=mystock, after:=.[b1], lookat:=xlPart)
  21. If myfind Is Nothing Then
  22. MsgBox "No Findings"
  23. Else
  24. Set myrange = .Range(myfind, myfind.End(xlDown))

  25. For Each mycell In myrange
  26. If mycell.Interior.ColorIndex = 6 Then
  27. mycell.Activate
  28. Exit For
  29. End If
  30. Next

  31. End If
  32. End With
  33. End Sub
複製代碼
輸入年份及其股票代號或名稱,該程式便會去到指定黃式格子
請肯定每個column只有一個黃色格子而已,如果不是此程式需要作修改,類似findnext + loop xxxx<>xxx.address之類的
有問題再call我
作者: candy516    時間: 2011-1-17 18:05

回復 14# FAlonso


你好~
請問我執行完第一個程式碼他跑出的訊息是"4142"這是什麼意思?!
謝謝你的回答!
^^
作者: FAlonso    時間: 2011-1-17 19:07

回復  FAlonso


你好~
請問我執行完第一個程式碼他跑出的訊息是"4142"這是什麼意思?!
謝謝你的回答! ...
candy516 發表於 2011-1-17 18:05

指格子是"無填滿".即default的color index
該程式是偵察出黃色的編號,不用猜
我第二個程式,你覺得怎樣?
作者: linshin1999    時間: 2011-1-17 19:08

本帖最後由 linshin1999 於 2011-1-17 19:26 編輯

candy妳好:我學會了取得儲存格顏色的方法,如果一定要用顏色找的話,可以試試看:

Dim mycolor As long
      mycolor = Activecell.Interior.color

如此妳就可以取得目前儲存格的顏色,然後將這個值帶進去木工版主的程式去試試看吧!
Sub YY()
Application.FindFormat.Interior.ColorIndex = Activecell.Interior.color
With ActiveSheet
For i = 1 To .Columns.Count
Set c = .Columns(i).Find(What:="", After:=.Cells(65536, i), SearchDirection:=xlNext, SearchFormat:=True)
If Not c Is Nothing Then MsgBox c.Address
Next
End With
End Sub

原來已經找到答案了,我没有看到還有第二頁,真不好意思,可是已經收不回來了,不過也學會了如何取得儲存格的顏色!

作者: candy516    時間: 2011-1-17 21:34

回復 16# FAlonso


喔~原來是這個意思呀!
第二個程式也很厲害耶!
大家都好厲害唷!
^^
作者: candy516    時間: 2011-1-17 21:36

回復 17# linshin1999


    linshin1999 你好~
也是非常謝謝你告訴我另一種方法!
大家的都好有耐心的回答我!
謝謝你們!
作者: FAlonso    時間: 2011-1-17 21:40

回復  FAlonso


喔~原來是這個意思呀!
第二個程式也很厲害耶!
大家都好厲害唷!
^^
candy516 發表於 2011-1-17 21:34

關於那個填權日數,我遲些寫一個程式給你
作者: candy516    時間: 2011-1-18 01:47

回復 20# FAlonso


大大你好~
填權日數目前已經解決了!
我目前所碰到的問題是說:要如何篩選出有再"10"天內完成填權的股票。
所以我目前再研究如何篩選資料,進度有點慢!= =
謝謝你的幫忙!
^^
作者: Hsieh    時間: 2011-1-18 08:32

回復 21# candy516
利用填權程式中計算天數的變數做判斷就可以
作者: candy516    時間: 2011-1-19 00:14

回復 22# Hsieh


你好~
請問篩選是要用Selection.AutoFilter嗎?
再請問前輩,是否能夠篩選出2001~2010在10(天)內填權的股票,
然後再將篩選出來的結果放到一個新的Sheet(照日期排序)?!
另外,冒昧的在請問一下,填權天數的變數是從哪裡到哪?
有部分的程式對我來說太深奧了!= =
謝謝你的幫忙!




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