ブック/ワークブックの両方のブックが保護されています。 ドロップダウンの値が「いいえ」のときに特定の範囲のセルをロック/無効にするコードがあります。ドロップダウンの値が「はい」のときにロックを解除/有効にします ドロップダウンの値と無効にするセルは別のシートに「メインシート」 「サブシート」保護されたセルをクリックすると、VBAがプロンプトを表示します
のセル範囲に
ドロップダウン私はまた、彼は、保護範囲とする場合値が「いいえ」に設定されているのをクリックすると、ユーザーにプロンプトをスローする必要があります。
私はユーザーがクリックしたときにそのプロンプトを投げていないとして、間違ったつもりサブシート上のコードPrivate Sub WorkBook_SheetChange(ByVal sh as Object, ByVal Target as Range)
If Intersect (Target, sh.Range("$E$19:$I$3000")) Is Nothing Then Exit Sub
MsgBox "Please select the appropriate dropdown on MAIN Sheet " & Target.Address
With Application
.EnableEvents = False
.UnDo
.EnableEvents = True
End With
End Sub
わからない、続いて「メインシート」
Private Sub Worksheet_Change(ByVal Target As Range)
Dim worksh As Integer
Dim worksheetexists As Boolean
Dim str1 As String
If UCase$(Range("E30").Value) = "YES" Then
Sheets("SubSheet").Select
Sheets("SubSheet").Range("E20:I3019").Locked = False
Sheets("SubSheet").Range("E20:I3019").Activate
Else
Sheets("SubSheet").Range("E20:I3019").Locked = True
End If
End Sub
に次のコードを使用してい
保護された細胞。
はあなたに感謝します。最初に "Activate"行の "RangeクラスのActivateメソッドが失敗しました"というエラーが表示されます。 2番目の関数で、私は間違っている場合私は私の関数をPrivate Sub Worksheet_Changes(ByVal sh As Object、ByVal Target As Range)に変更しましたが、それでも私には一般的なメッセージ "CellまたはChartを変更しようとしています... " – sady
もしあなたが'選択 'を使わないなら、 '活性化'を削除してください。 – Ary
ええ、私はActivateと最初の機能がうまく動作するとコメントしました。 – sady