私のメインシートには、長い16桁のコードを入力する列(列C)があります。次の列(列D)は、式「= MID(列Cのセル、16,6)」を有するコードの最後の6桁を引き出す。より長いコードの最後の6桁が、 Case
ステートメントでは、列Fの対応するセルが赤に変わって、列Fのセルにコードが必要であることをユーザーに示します.F列セルが赤に変わると、ユーザーはF内のそのセルをクリックできますユーザはコードをダブルクリックすると、メインシートにF列が戻されます。値がセル内にあるときのセルの色の変更
現在、コードがF列の場合、でもの空白なしの背景に変わります。同じ行の任意のセルに他のデータを入力するとでは、F列のセルが赤色に戻り、コードがセル内に残っています。コードがセルから削除されない限り、そのセルに値が必要であることをユーザーに示すために赤に戻すことができます。コードがまだ内部にあるときに、セルを赤くすることはできません。私は幾分近いように感じますが、この機能を動作させるにはVBA構文を十分に理解していません。どんな提案も大歓迎です。
ありがとうございます。 私は、以下のメインシート/フォームにコードを掲載します:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range: Set c = Range("D7:D446")
Dim d As Range: Set d = Range("F7:F446")
For Each c In c.Cells
Select Case c.Value
Case "1000GP", "1000MM", "19FEST", "20IEDU", "20ONLC", "20PART", "20PRDV", "20SPPR", "22DANC", "22LFLC", "22MEDA", "530CCH", "60POUBL", "74GA01", "74GA17", "74GA99", "78REDV"
Cells(c.Row, "F").Interior.ColorIndex = 3
Case Else
Cells(c.Row, "F").Interior.ColorIndex = 0
End Select
Next c
If Not Application.Intersect(d, Range(Target.Address)) _
Is Nothing Then
Target.Interior.ColorIndex = 0
End If
End Sub
あなたのコードは、D列のF列で何かが変更された場合にのみ有効になります。 – UGP
@UGPあなたの答えはありがとうございます。それはうまくいった。コードを選択すると、F列のセルが入力され、セルは塗りつぶしのない色に戻ります。しかし、F列のセルからそのコードを削除すると、Fセルが赤色に戻ります。現時点では、削除時に背景色が塗りつぶされません。あなたは私がそれをどうやってやることができるか知っていますか?再度、感謝します!とても有難い。 – anve
私はあなたがチェックアウトしたいかもしれない短いバージョンを追加しました。どちらのバージョンも同じnoをして、Fの値が "" – UGP