ユーザーがボタンをクリックして現在のブックを開いて別のブックを保護するVBAマクロを作成しています。 「アプリケーション定義またはオブジェクト定義のエラー」が発生しました。私はthis postを調べ、開かなければならないブックが保護されていないことを確認しました。しかし、まだエラーが発生します。助けてください。ありがとう!ワークシートを保護するときのVBA "アプリケーション定義またはオブジェクト定義のエラー"
Sub LockModelParInput()
Dim wbk As Workbook
Workbooks.Open (ModelParVarClusLocalPath & "\" & ProN & "_ModelParameter_UserInput.xlsx")
Set wbk = Workbooks(ProN & "_ModelParameter_UserInput.xlsx")
wbk.Activate
With ActiveWorkbook.Worksheets("Model_Rule")
.Protection.AllowEditRanges.Add Title:="VIF Cut Off Level 2", _
Range:=Range("C4") *'error occurs on this line*
.Protection.AllowEditRanges.Add Title:="p_value stay", Range:= _
Range("D4")
.Protection.AllowEditRanges.Add Title:="Trend Threshold", Range _
:=Range("E4")
.Protection.AllowEditRanges.Add Title:="r_var_ks_penalize", Range _
:=Range("B10")
.Protection.AllowEditRanges.Add Title:="fast backward", Range:= _
Range("C16")
.Protection.AllowEditRanges.Add Title:="locked forward", Range:= _
Range("C17")
.Protection.AllowEditRanges.Add Title:="enhanced stepwise", Range _
:=Range("C18")
.Protection.AllowEditRanges.Add Title:="traditional backward", _
Range:=Range("C19")
.Protection.AllowEditRanges.Add Title:="sas stepwise", Range:= _
Range("C21")
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub
あなたの 'Range'呼び出しを修飾する必要があります。 'With'ブロックの' Range:= Range'はすべて 'Range:=。Range'でなければなりません。 – Comintern
私はそれが問題ではないことを恐れています - それはまだ動作しないテストだけです。 Withブロック内のものは、マクロレコードから直接コピーされます。 – vivi11130704