返回列表 上一主題 發帖

[發問] 怎麼取有顏色儲存格內的值

本帖最後由 GBKEE 於 2014-8-14 14:55 編輯

回復 1# sunland





試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A As Range, A_Po As String
  4.     Dim AA As Range
  5.    
  6.     'FindFormat 屬性 設定或傳回要尋找之儲存格格式類型的搜尋準則。
  7.     With Application.FindFormat
  8.         .Clear                      '清除以前的設定
  9.        ' .Interior.Color = vbred    '設定儲存格圖樣顏色(紅色)
  10.         .Interior.ColorIndex = 3   '設定儲存格圖樣顏色(紅色)
  11.        '.Font.Bold = True           '粗體
  12.        '.Font.Size = 12             '字型大小
  13.     End With
  14.    
  15.     Set A = Cells.Find("", AFTER:=Cells(Cells.Count), SearchFormat:=True) 'SearchFormat   選擇性的 Variant。搜尋的格式。
  16.     Do While Not A Is Nothing
  17.         If A_Po = "" Then
  18.             A_Po = A.Address
  19.             Set AA = A
  20.         End If
  21.         Set AA = Union(AA, A)
  22.         Set A = Cells.Find(What:="", AFTER:=A, SearchFormat:=True) '下一個相同格式搜尋
  23.         If A_Po = A.Address Then Exit Do
  24.     Loop
  25.     If Not A Is Nothing Then AA.Copy Sheets("目標工作表").Range("A1")
  26. End Sub
  27. Sub Ex_A()  '找顏色 ColorIndex 可如此得到
  28.     MsgBox Range("A1").Interior.ColorIndex
  29. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# sunland

再試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A As Range, A_Po As String
  4.     Dim AA As Range, Sh As Worksheet
  5.    
  6.     'FindFormat 屬性 設定或傳回要尋找之儲存格格式類型的搜尋準則。
  7.     With Application.FindFormat
  8.         .Clear                      '清除以前的設定
  9.        ' .Interior.Color = vbred    '設定儲存格圖樣顏色(紅色)
  10.         .Interior.ColorIndex = 3   '設定儲存格圖樣顏色(紅色)
  11.        '.Font.Bold = True           '粗體
  12.        '.Font.Size = 12             '字型大小
  13.     End With
  14.     Set Sh = ActiveSheet
  15.     Set A = Sh.Cells.Find("", AFTER:=Sh.Cells(Sh.Cells.Count), SearchFormat:=True) 'SearchFormat   選擇性的 Variant。搜尋的格式。
  16.     Do While Not A Is Nothing
  17.         If A_Po = "" Then
  18.             A_Po = A.Address
  19.             Set AA = A
  20.         End If
  21.         Set AA = Union(AA, A)
  22.         Set A = Sh.Cells.Find(What:="", AFTER:=A, SearchFormat:=True) '下一個相同格式搜尋
  23.         If A_Po = A.Address Then Exit Do
  24.     Loop
  25.     If Not A Is Nothing Then AA.Copy Sheets("目標工作表").Range("A1")
  26. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# sunland
出現相同的錯誤
可否上傳如這顯示錯誤的畫面
或是錯誤碼


未命名.JPG
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# sunland
回復 10# c_c_lai

那改為如此比較恰當,最後一個儲存格找起
  1.     Set Sh = ActiveSheet
  2.     '2003-> Sh.Cells.Count 是沒錯誤的
  3.      ' Set A = Sh.Cells.Find("", AFTER:=Sh.Cells(Sh.Cells.Count), SearchFormat:=True) 'SearchFormat   選擇性的 Variant。搜尋的格式。

  4.     Set a = Sh.Cells.Find("", AFTER:=Sh.Cells(Sh.Cells.Rows.Count, Sh.Cells.Columns.Count), SearchFormat:=True) 'SearchFormat   選擇性的 Variant。搜尋的格式。
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題