お客様が入力できるワークシートが1つあります。例えば、それぞれから2つのセルを引いて、編集不可能な別のセルに値を置きます。
列cの値は、列Bから来るべきである - 列Aをユーザが両方のAとB列の値を入力するたびに、自動的にVBAコードを使用してカラム
アムC.
を反映すべきです。ありがとうございました。
お客様が入力できるワークシートが1つあります。例えば、それぞれから2つのセルを引いて、編集不可能な別のセルに値を置きます。
列cの値は、列Bから来るべきである - 列Aをユーザが両方のAとB列の値を入力するたびに、自動的にVBAコードを使用してカラム
アムC.
を反映すべきです。ありがとうございました。
おそらくあなたは、ユーザーが「シート1」に値を入力されると仮定すると、ユーザーが列AとBにエントリを作成するときは、これを行うことができます保護を解除してから再守るワークシートにする方法を求めている:
Option Explicit
Private Sub Worksheet_Change(ByVal target As Range)
If Not Intersect(target, Me.Range("A:B")) Is Nothing Then
Application.EnableEvents = False
UnprotectSheet1
Dim row As Integer
row = target.row
Cells(row, 3) = Cells(row, 2) - Cells(row, 1)
ProtectSheet1
Application.EnableEvents = True
End If
End Sub
Public Sub UnprotectSheet1()
Worksheets("Sheet1").Unprotect Password:="password"
End Sub
Public Sub ProtectSheet1()
With ThisWorkbook.Worksheets("Sheet1")
.Protect Password:="password"
.EnableSelection = xlUnlockedCells
End With
End Sub
このコードは "Sheet1"のコードセクションに入れなければなりません
こんにちは、ありがとう。よし、分った。しかし、今私の問題は:列Cは編集不可能なはずです。列をロックすると、VBAコードでその列の変更を行うことはできません。したがって、ユーザーはその列を編集できません。開発者はVBAコードの助けを借りて列c(A〜B)に値を渡すことができます。 – aaroki
シート(シート名)。範囲( "H1:H100")。パスワードの保護:= PassWord、UserInterfaceOnly:= True。私はWorkbook_Open()関数でこのコードを試しました。動いていない。 – aaroki
シート(SheetName)。範囲( "C1:C100")を意味しますか?シート上に保護されていないセルと保護されたセルを組み合わせることができます。上のコードはうまくいくはずです(あなたがパスワードを知っていると仮定して)。 – Amorpheuses
あなたの質問は何ですか? – tretom
これまでに何を試しましたか? – R3uK