Excel - コメント内の日付に基づいて、またはテキストと組み合わせてセルの色を変更する


1

私はExcel 2010を使用しており、そのセル内の日付に基づいてセルの色を変更するルールを設定しようとしています。

たとえば、セルには Site meeting - 11.05.14

2週間後、1週間後、2日後に期限切れになると自動的に色が変わるようにしたいと思います。

理想的には日付だけのセルを別にしたくないので、コメントに日付を含めることもできます。私は私が多くを求めていることを認識していますが、うまく行けば誰かが解決策を持っているかもしれません?

私はこれのための解決策を持っていますが、それは大まかであり、本当に私がしていることではありません。条件付き書式設定と= NOW関数を使用すると、2つのセルを使用しても結果を得ることができます。特定のシンボルの前にセル内のすべてを無視するようにExcelに指示する方法があることを願っています。この場合には "-"。

グーグルは私をVBAに導いたが、残念ながら私はその使い方がわからない。それで、うまくいけばここの誰かが助けることができる?または少なくとも私に正しい方向への推進力を与えてください。


Dave、それはワークシート関数である必要はありません。それが最も簡単な方法だと思います。しかし、多分私が求めているのはvbaのための何かですか?その場合私は詰まっています。私はvbaを使った経験がありません。
Jonathan

回答:


0

これはあなたが欲しいものです

Sub WorkOutTime()

    'see http://dmcritchie.mvps.org/excel/colors.htm for colour chart

dim columnToUse as string
columnToUse = "A"    ' update this to the colum you want to use


Dim expired As Integer
expired = 3 'red

Dim twoDays As Integer
twoDays = 8 'blue

Dim sevenDays As Integer
sevenDays = 27 ' yellow

Dim fourteenDays As Integer
fourteenDays = 7 ' purple


Dim currentCell As Integer
currentCell = 1

Do While (True)

If (Range(columnToUse & currentCell).Value = "") Then
    Exit Do
End If


Dim timeNow As Date
timeNow = Date

Dim willContinue As Boolean
willContinue = True

Dim dateDifference As Integer

dateDifference = dateDiff("d", timeNow, Range(columnToUse & currentCell).Value)

If dateDifference >= 14 And willContinue Then
    Range(columnToUse & currentCell).Interior.ColorIndex = fourteenDays
    willContinue = False
End If

If dateDifference <= 7 And dateDifference > 2 And willContinue Then
    Range(columnToUse & currentCell).Interior.ColorIndex = sevenDays
End If

If dateDifference <= 2 And dateDifference >= 0 And willContinue Then
    Range(columnToUse & currentCell).Interior.ColorIndex = twoDays
End If

If dateDifference < 0 And willContinue Then
    Range(columnToUse & currentCell).Interior.ColorIndex = expired
End If

currentCell = currentCell + 1

Loop

End Sub

enter image description here

だから、 開発者ツールバー 挿入をクリックしてボタンをクリックしてください。図形を画面にドラッグします。

OKをクリック

ボタンを右クリックしてWorkOutTimeという名前を付けます。

VBaの画面が表示されない場合は、リボンからVisual Basicをクリックしてください。

そこにあるものを削除して、私のコードを貼り付けてください。

マクロ有効ワークシートとして保存します。それを実行します

注意してください、私のコードは列Aの項目に対してのみ機能します


デイブ、あなたは天才です。どうもありがとうございました!
Jonathan

Dave、 "a"をセルに変更しても動作します。 - ありがとう
Jonathan

どういう意味ですか?あなたが列を意味するならば、それから更新されたコードを見てください。これで、列1を所定の位置に変更することができ、それによってロットが整理されます。
Dave

また、ファイルなどを開いたときに実行されるようにコードを更新することもできます。 office.microsoft.com/en-gb/excel-help/…
Dave

ありがとうございました。実行に問題があります。 Y列を見るように変更しました。いくつかの日付があります。 1つは2014年5月1日です。ボタンをクリックしても何も起こりません。 Y列の先端の2行がX、Y、Z、AA、AB、およびACとマージされることは重要ですか。最終的には、Y、AA、ACの日付を変更したいと思います。 - ありがとう
Jonathan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.