2016-09-22 4 views
-1

So habe ich den folgenden VBA-Code:VBA: Ergreifung ein Zellwert abhängig von seiner Farbe

Function CountCcolor(range_data As Range, criteria As Range) As Long 

Dim datax As Range 
Dim xcolor As Long 

xcolor = criteria.Interior.ColorIndex 

For Each datax In range_data 
    If datax.Interior.ColorIndex = xcolor Then 
     CountCcolor = datax.Select 
    End If 
Next datax 

End Function 

Dieser Code Schleife durch den Bereich gegeben andsearches für eine bestimmte Hintergrundfarbe. Dann nimmt es den Wert dieser Farbe und legt sie in die ausgewählte Zelle.

Mein Problem ist das funktioniert nur, wenn die Daten mit der richtigen Hintergrundfarbe eine Zahl und kein Text ist.

Irgendwelche Ideen, warum es den Text von der Zelle nicht ergreifen kann?

Es wird nur #WERT angezeigt! wenn sein Text im Moment ist.

+0

ja, definieren Sie Ihre 'Funktion CountCcolor als Long', so dass es Zahlen akzeptieren nur. –

+0

Ich habe auch versucht datax.Text - aber kein Glück – Silk13

+0

können Sie nicht, weil Ihre 'CountColor 'definiert ist als' Long' –

Antwort

0
CountCcolor is defined as Long 

-Code sein sollte,

Function CountCcolor(range_data As Range, criteria As Range) As String 

Dim datax As Range 
Dim xcolor As Long 

xcolor = criteria.Interior.ColorIndex 

For Each datax In range_data 
    If datax.Interior.ColorIndex = xcolor Then 
    CountCcolor = datax.Select 
End If 
Next datax 
End Function 

Dank @Shai Rado für bemerken

Verwandte Themen