2016-04-24 17 views
1

私は、顧客が支払いを行った時期と遅れた時期を示すExcelシートを作成しています。友人の助けを借りて、私はセルの赤を強調表示して顧客が期日を過ぎているかどうかを教えてくれる数式を思いついた。Excelで日付値を使用してVBAで条件付き書式を適用する

私が見た限りでは、空白のセルを「LATE」に変更するための条件付き書式設定を行う方法はないため、VBAを試してみることを提案しました。

色を変更して必要な単語を追加できましたが、条件付き書式設定のような日付をVBAで確認する方法はありますか?ここで

式と私は私のVBAシートに持っている:

=AND(ISBLANK(B1),NOT(ISBLANK(B$1)),NOT(ISBLANK($A1)),DATE(YEAR($A1),MONTH($A1),DAY(B$2))<TODAY(),B$2<TODAY()) 

VBA

Const FORMATTED_RANGE As String = "$B:$ZY" 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Intersect(Target, Range(FORMATTED_RANGE)) Is Nothing Then Exit Sub 
    Dim cellColor As Long 
    Application.EnableEvents = False 
    Select Case Len(Target.Value) 
    Case ISBLANK 
     Target.Value = "LATE" 
     Target.Interior.Color = vbRed 
    Case Is <> 0 
     Target.Value = "PAID" 
     Target.Interior.ColorIndex = 10 
    End Select 
    Application.EnableEvents = True 
End Sub 
私は私がオンラインで見つけるいくつかのコードを使用

(感謝Rolf Jaeger from nullskull.com)これのために、私はそこにすべてが必要な場合私は100%ではないが、そうだうまく動作するように、私はVBAについてもっと学ぶまで、今は残しました。

+1

= = AND(ISBLANK(B1)、NOT(ISBLANK(B $ 1))、...........あなたは 'B1' cannoとして' FALSE'を返します同時に空白で非空白にしてください。サンプルデータも提供できますか? – Mrig

+0

私はvbaを推奨しません。ドル記号($)を使用する通貨形式のような条件付き書式で数値書式を試すことができます。ドル記号の代わりに 'LATE'という単語を...;) – Rosetta

+0

このような種類の書式設定を行うためにVBAを使用すると、ワークシートのクロール速度が遅くなるため、VBAを使用することはありません – Rosetta

答えて

0

条件付き書式でテキストを入力することはできませんが、フォントの色を変更することはできます。解決策は、指定されたセルに「LATE」をあらかじめ入力しておき、フォント色を背景色と同じにして、単語を非表示にすることができます。 。フォントの色や単語がLATE表示されませんVBAはrequieredを変更

一方:IF-式シンプルが良いではないであろうような何か:?

=if(amountpaid?,"PAID",if(late?, "LATE", "")) 

をあなたができることを願うならば条件付き書式設定でバックグラウンドを変更してください。

+0

こんにちはマルコ、私はこれを考えなかった!このアプリケーションでは、完璧に動作します! 助けを借りてくれてありがとう、ありがとうございました。 – aglasier

関連する問題