11

セルのハイライト色に基づいてセルに機能を実行させようとしています。

これが私が現在持っている機能です:

=IF(A6.Interior.ColorIndex=6,IF(ROUNDDOWN(IF(M6<3,0,IF(M6<5,1,IF(M6<10,3,(M6/5)+2))),0)=0,0,ROUNDDOWN(IF(M6<3,0,IF(M6<5,1,IF(M6<10,2,(M6/5)+2))),0)),IF(ROUNDDOWN(IF(M6<7,0,IF(M6<10,1,M6/5)),0)=0,0,ROUNDDOWN(IF(M6<7,0,IF(M6<10,1,M6/5)),0)))

そのすべてを読む必要がないように、より簡単な例を次に示します

=IF(A6.Interior.ColorIndex=6,"True","False")

彼が返すのは #NAME だけですか? . セル内の関数としてこれを行う方法はありますか、または VBA は絶対に必要ですか?

ありがとう、

ヨルダン

4

5 に答える 5

6

数式でVBA ( Interior.ColorIndex) を使用できないため、エラーが発生します。

これは VBA がないとできません。

Function YellowIt(rng As Range) As Boolean
    If rng.Interior.ColorIndex = 6 Then
        YellowIt = True
    Else
        YellowIt = False
    End If
End Function

ただし、これはお勧めしません。これは、ユーザー定義の VBA 関数 (UDF) の使用を意図したものではありません。これらは、セルの色の書式設定を読み取ることができない Excel 関数の動作を反映する必要があります。(この機能は、将来のバージョンの Excel では機能しない可能性があります。)

そもそもセルを黄色にする元の条件(決定)に基づいて数式を作成する方がはるかに優れています。または、代わりに Sub プロシージャを実行して、True または False の値を入力します (ただし、これらの値は元のセルの書式設定にリンクされなくなります)。

于 2013-09-13T19:12:03.370 に答える
3

数式からセルの色を取得する方法はないと思います。最も近いのはCELL数式ですが、(少なくとも Excel 2003 では) セルの色は返されません。

VBA で実装するのは非常に簡単です。

Public Function myColor(r As Range) As Integer
    myColor = r.Interior.ColorIndex
End Function

次に、ワークシートで:

=mycolor(A1)
于 2013-09-13T19:11:43.983 に答える
2

これはあなたの質問に直接対処するものではありませんが、実際には Excel でデータをセルの色で並べ替えることができます (これにより、すべてのレコードに同じ方法で特定の色のラベルを付けることが非常に簡単になり、したがって、このラベルに条件を付けることができます)。

Excel 2010 では、[データ] -> [並べ替え] -> [セルの色] で並べ替えると、これを行うことができます。

于 2015-01-27T09:27:55.330 に答える