Board logo

標題: [發問] 如何才能找尋所要的資料並在儲存格塗色? [打印本頁]

作者: wuwulang    時間: 2011-4-27 02:16     標題: 如何才能找尋所要的資料並在儲存格塗色?

[attach]5876[/attach]
作者: mark15jill    時間: 2011-4-27 08:14

用個新手的方法..
'如果 有出現john 則 該儲存格背景色為 紅色  <--說明
    With Application.ReplaceFormat.Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Cells.Replace What:="john", Replacement:="john", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
作者: oobird    時間: 2011-4-27 14:57

本帖最後由 oobird 於 2011-4-27 15:01 編輯

加上右側打勾
  1. Sub yy()
  2. With Application.ReplaceFormat.Interior
  3.         .ColorIndex = 3
  4.     End With
  5.    Cells.Replace What:="john", Replacement:="=1/0", ReplaceFormat:=True
  6.    With Cells.SpecialCells(xlCellTypeFormulas, 16)
  7.    .Value = "john"
  8.    .Offset(, 1) = "√"
  9.    End With
  10. End Sub
複製代碼

作者: wuwulang    時間: 2011-4-28 00:26

回復 3# oobird


謝謝你
但是我只要A欄位有出現john時
在B欄那邊才會打勾
那我應該要怎麼做呢?
作者: mark15jill    時間: 2011-4-28 08:23

本帖最後由 mark15jill 於 2011-4-28 08:32 編輯

oobird大大 所發的程式碼就是樓主要的效果了...
而且程式精簡很多
如果要尋找其他關鍵字 把 john改掉即可..
作者: chin15    時間: 2011-4-28 08:39

本帖最後由 chin15 於 2011-4-28 08:41 編輯

看起來應該是在a欄比對d1儲存格
  1. Sub module1()
  2.     Dim x$, c As Range, data As Range
  3.     x = [d1]
  4.     For Each c In Range([a1], [a65536].End(3))
  5.         If c = x Then
  6.             If data Is Nothing Then
  7.                 Set data = c
  8.             Else
  9.                 Set data = Union(data, c)
  10.             End If
  11.         End If
  12.     Next
  13.     If Not data Is Nothing Then
  14.     With data
  15.         .Interior.ColorIndex = 3
  16.         .Offset(, 1) = "V"
  17.     End With
  18.     End If
  19. End Sub
複製代碼

作者: mark15jill    時間: 2011-4-28 10:50

剛剛把 chin15 大大所發的程式碼加以延伸的話 應該能達到樓主的需求





附檔內 為 A 欄位 和 B欄位的對比, 如果B欄位內有A欄位的話,即會在C欄位相對儲存格打勾
但是有個缺點.. 如果資料是數字狀態 那就會出現錯亂..
如  10 20 30  和 100 110 120 130   會誤判...


[attach]5893[/attach]
作者: oobird    時間: 2011-4-28 15:00

每一帖要比對的位置都不一樣
不知該回覆哪一帖
最後一帖的:
Sub module1()
Dim yy As Range, data As Range
For Each yy In Range([a1], [a65535].End(3))
Set c = [b:b].Find(yy, , , 1)
If Not c Is Nothing Then
           If data Is Nothing Then
           Set data = c
        Else
          Set data = Union(data, c)
        End If
     End If
Next
    If Not data Is Nothing Then
    With data
        .Interior.ColorIndex = 3
        .Offset(, 1) = "V"
    End With
    End If
End Sub
作者: mark15jill    時間: 2011-4-28 15:24

0.0 我最後發的帖 是由 chin15大大 的方式 加以延伸..
樓主的兩個需求
(若D欄儲存格有A欄的值  則在B欄 相對儲存格打勾)
只是會有點小誤判而已 哈哈><!
剛剛試驗+應用 應該誤判機率很低...除非是數字..
作者: wuwulang    時間: 2011-4-29 08:40

很感謝各位大大的幫忙...謝謝你們
後來我在向朋友尋問時
他才跟我講,這是兩個題目是分開的>_<

第2題題目我朋友是講
請問:
1. 若D欄的內容出現在A,則在鄰列出現V字樣
2. for  i =1 to 3,跑3個迴圈,有沒有相等,若有,請打V。

不用塗色。Q_Q
作者: mark15jill    時間: 2011-4-29 09:24

有個疑問...
為什麼要 for i = 1 to 3 ?  

如果不要顏色的話
把 .Interior.ColorIndex = 3 刪除即可0.0
作者: wells330    時間: 2011-4-30 16:32

各位前輩大家好!
      在這裡學習良多,很精彩
     以上是比對文字,如果是數字比對該如何作?
     D2:D297的資料其中只要有儲存格是 0 則在B2:B297的相對位置(如D6是 0,B6的儲存格塗綠色文字顯示白色)
     E2:E297的資料其中只要有儲存格是 0 則在B2:B297的相對位置(如E6是 0,B6的儲存格塗紅色文字顯示白色)


    謝謝!

作者: mark15jill    時間: 2011-5-2 11:32

各位前輩大家好!
      在這裡學習良多,很精彩
     以上是比對文字,如果是數字比對該如何作?
      ...
wells330 發表於 2011-4-30 16:32



    數字 ... 基本上是一樣吧...(儲存格類型會不同)
不過  感覺表達的文意有點怪..
     D2:D297的資料其中只要有儲存格是 0 則在B2:B297的相對位置(如D6是 0,B6的儲存格塗綠色文字顯示白色)
      E2:E297的資料其中只要有儲存格是 0 則在B2:B297的相對位置(如E6是 0,B6的儲存格塗紅色文字顯示白色)

這樣不會重疊嗎...+.+
如 假使 d6 e6 同時為0... 那你的b6 要哪種顏色...
作者: wells330    時間: 2011-5-4 09:53

你好!
多謝提醒!
同時為0"不動作"。
作者: Hsieh    時間: 2011-5-4 16:07

[attach]5965[/attach]
作者: wells330    時間: 2011-5-5 14:06

Hsieh超級版主你好!
        感謝再感恩!




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