プロジェクトを完了するためには、VBAコーディングが必要です。 VBAに関する私の知識はとても基本的なので、私は苦労しています。私は同様のリクエストを読んだがコードを完了できなかったので、できるだけ詳細を述べる。オフセットセル-1の列が空白の範囲でセルをロックするためのEXCEL VBA
日曜日から土曜日の7日間を表す一連の「2列」(パターンとデスク)(x7)があります。各日の左の列はシフトパターンを表し、右の列は各日に割り当てられたデスクを表します。私は名前の範囲で作業しているので、いくつかの空白の列があります。
シフトパターン列x7は左側にあり、 "パターン"という名前の範囲として定義されています。デスク列は各シフト列のすぐ右にあり、Desksという名前の範囲が定義されています。列は約25セルです。しかし、これはワークブックからワークブックまで様々です。したがって、名前付き範囲の使用。
"Desks"という名前の範囲内の各セルをロックしたいところで、 "Pattern"という名前の範囲に残っているセル-1の列に値が設定されていません。
シートはすでに選択されて保護されておらず、「デスク」の範囲はロックされていません。
Sheets("Assign Desks").Select
ActiveSheet.Unprotect
Application.Goto Reference:="Desks"
Selection.ClearContents
'Unlock Cells
Selection.Locked = False
セルをロックするコードの後、ワークシートは保護され、リボンは隠され、画面分割はワークシートに表示されます。それはうまくいきます。
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
その他の情報パターン列は、データがリフレッシュされるパターン(ブックの別のシートに貼り付ける)を表示する数式を含みます。両方の列には、一度入力したセルを書式設定するための条件付き書式が含まれています。
一度リフレッシュすると、シフトごとにデスクを割り当てる必要があります(人間の判断が必要なため自動化できません)。しかし、私は、デスクをリストから割り当てる必要があるセルをタブで移動できるようにしたい利用可能な残りの利用可能なデスク。私はスキップされている(したがってロックされている)横のシフトがないことを細胞に欲しい。 Part of worksheet
私の質問にお返事いただきありがとうございます。私は要件をうまく説明していると思ったが、実際には、シフトパターンを含むセルの+1右以外のすべてのセルをロックする必要がありました。ヘッダー行はそれを変更しても問題ありません。シフトパターン列には、式= IFNA(IF(OR(E6 = "x"、E6 = "xs"、E6 = "XR"、E6 = "XR"、E6 = "")、LEFT 、9))、 "") – Penelope53
すべてをロックするように上記の私の答えを編集し、シフトパターンの列で非空白のセルの右側にあるセルのロックを解除するだけです。それはあなたが必要とするものではありますか? –
私は間違っているかもしれませんが、 "clear middle col"は動作しません。これらのセルには、ユーザーが第3列に表示されているリストから机を選択できるようにするデータ検証付きのドロップダウンリストが含まれているため、これが想定されています。その日に選ばれた机はすでに消えています。したがって、細胞をクリアすることはできません。 – Penelope53