これは非常に簡単な修正かもしれませんので、私の「初心者」をむき出しにしてください。ユーザーが PIN# を入力すると、VBA コードがその ID を取得し、ローカル DB を使用してその ID に基づいて特定のセルを変更する、非常にユニークなフォームがあります。セルには、DB からのデータが入力されるか、それに応じて異なる形式でフォーマットされるか、またはその両方が行われます。すべてその PIN 番号に基づいています。
DB でピンを検索し、N または Y のいずれかの値を見つけて、それに応じてセルをフォーマットするコードがあります。問題は、DB の値が「N」の場合にセルの値を変更し、色を変更し、セルをロックするようにコードを記述していることです。ユーザーが関連付けられた DB で「Y」値を持つ PIN# を入力すると、セルは同じままになります...次に、DB で相関する「N」値を持つ PIN# でユーザーが入力すると、値は変化する。すべて良いですよね?? いいえ!問題は、ユーザーが戻って、関連付けられた DB 内の相関 "Y" 値を持つ別の PIN# を入力すると、セルが元の状態に戻らず、灰色のままロックされたままになることです。連続したオカレンスまたは何かについてのステートメントが必要です... 何か不足していますか?
Sub setChromBox()
If GetLDBValue(GetHasChrom(Range("START_PIN").value)) = "Y" Then
Exit Sub
End If
If GetLDBValue(GetHasChrom(Range("START_PIN").value)) = "N" Then
Range("START_GCTR").value = "NO"
Range("START_GCTR").Interior.ColorIndex = TRColor.Color_Null
Range("START_GCTR").Locked = True
Else
Range("START_MC_LOOKUP").ClearContents
注: GetLDBValue は単にローカル DB に ping を実行する関数であり、GetHasChrom は DB 内のテーブルに ping を実行して "Y" または "N" の値を返すクエリです。If it changes back の行に沿って何かを言う別の IF ステートメントを追加する必要がありますか? 私はここから離れていますか?コードを他の場所で変更する必要がありますか? どんな助けでも大歓迎です