私は非常に基本的な要件がありますが、これをコード化する方法はわかりません。 私が探しているのは、セルが> = 1の場合、特定の範囲( "J10:J1000")で変更を加えないことです。それが意味をなさないならば。変更を行わないでください - Worksheet_Change
したがって、J10からJ1000までのセルは0であれば任意の値に変更できますが、0より大きい場合は「Sorry!change can not happen」と表示してメッセージを表示します。
私は非常に基本的な要件がありますが、これをコード化する方法はわかりません。 私が探しているのは、セルが> = 1の場合、特定の範囲( "J10:J1000")で変更を加えないことです。それが意味をなさないならば。変更を行わないでください - Worksheet_Change
したがって、J10からJ1000までのセルは0であれば任意の値に変更できますが、0より大きい場合は「Sorry!change can not happen」と表示してメッセージを表示します。
試してみてください。 シートモジュールに次のコードを挿入します。
これを行うには、[シート]タブ - > [コードを表示]を右クリックし、開いているコードウィンドウに以下のコードを貼り付けます - >ブックをマクロ対応ワークブックとして保存します。
Dim oVal
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo SkipError
Application.EnableEvents = False
If Not Intersect(Target, Range("J10:J1000")) Is Nothing Then
If Target.CountLarge > 1 Then
Application.Undo
Else
If oVal > 0 Then
Application.Undo
Target.Offset(1, 0).Select
MsgBox "Sorry! you cannot change the cell content.", vbExclamation, "Change Not Allowed!"
End If
End If
End If
SkipError:
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("J10:J1000")) Is Nothing Then
oVal = Target.Value
End If
End Sub
データ検証? – pnuts
ツールバーの[データ]に移動して[データ検証]をクリックし、そこにルールを設定します。ここにVBAは必要ありません。[詳細はこちら](https://support.office.com/en-us/article/Apply-data-validation-to-cells-29fecbcc-d1b9-42c1-9d76-eff3ce5f7249) – JNevill