2011-08-23 124 views
0

我想過濾大的Excel表中的行 - 我想只顯示具有特定內部顏色的單元格(例如黃色)。 有沒有簡單的方法來做到這一點?我的想法是寫一個VBA函數 (東西呈三角是here如何過濾基於單元格內部顏色的Excel單元格?

*public function kolory(komorka as range) 
kolory-komorka.interior.color 
end function* 

當我有這個功能,我能夠生成特定的代碼爲每個顏色,然後用它來過濾它(我甚至可以展開 不幸的是Excel並沒有看到我的功能(儘管啓用了宏),並且在很多情況下我無法使用用VB編寫的代碼

+0

什麼不能與你的函數工作? 「不幸的是Excel沒有看到我的功能」還不夠清楚 – JMax

+0

對於初學者來說,也許刪除那些'*'字符?他們在那裏做什麼? –

回答

0

你的意思是它沒有出現在宏窗口中嗎?你是否希望它顯示爲工作表函數/用戶定義函數? 如果要將其用作UDF,則需要返回類型並將代碼放入常規模塊中。代碼看起來像

public function kolory(komorka as range) as integer 
    dim cellColor as integer 
    cellColor = komorka.interior.color 
    kolory = cellColor 
end function 

如果你想,因爲你需要一個非可選輸入(komorka as range)使用這個作爲一個獨立的程序,你不能。它需要從一些可以傳遞komorka值的包含函數/子中調用。一旦你有什麼可以調用你的kolory函數,你可以在你的代碼中使用它。代碼看起來與上面相同。

+0

在所有可能的數據類型中,爲什麼要使用'String'來包含顏色信息? –

+0

是的,你是對的...不好的選擇。我改爲整數。更好? – Brad

+0

更糟......嘗試一下,看看會發生什麼。欲瞭解更多信息,請參閱'.Color'和'RGB'功能的幫助文件。 –

0

這是你的函數正確的語法:

Public Function kolory(komorka As Range) As Long 
    kolory = komorka.Interior.Color 
End Function 

即擺脫那些*並與=取代-

在Excel工作表中,要返回單元格A1的顏色,請在其他單元格中鍵入=kolory(A1)

當然,如果你只是編寫VBA代碼,你並不需要的功能kolory因爲它只是komorka.Interior.Color的包裝...