VBAのExcelブックでシート(表示のみ)を保護しようとしています。私は、ユーザーが "シート2"と "シート3"のオブジェクトを編集できるようにしたいが、他のオブジェクトは編集しない。Excel VBAでさまざまなオプションのシートを保護するにはどうすればよいですか?
これは私が使用しているコードです。
Public Sub WBOpen()
Dim sh As Worksheet
Dim allowObjects As Boolean
For Each sh In Sheets
If sh.Visible = xlSheetVisible Then
**If sh.Name = "Sheet 2" Or "Sheet 3" Then**
allowObjects = True
Else
allowObjects = False
End If
sh.Protect Password:=pw(sh), DrawingObjects:=allowObjects, Contents:=True, Scenarios:=True, AllowFormattingRows:=True, AllowFiltering:=True, UserInterfaceOnly:=True
End If
Next
End Sub
**で囲んだ行に型の不一致エラーが表示されています。私がどこに間違っているのか誰にでも教えてくれますか?
はなぜ@Randyが指摘し、エラーが修正された後、それはまだエラーを持っているだろうが、私は私が何をすべきかを伝えることができます
あなたが試したこと:sh.Name = "Sheet 2"またはsh.Name = "Sheet 3" – Randy
また、実際に参照する "Sheet 2"にはタブを見るときにスペースがあることを確認してください。デフォルトでは、タブにスペースはありません(「シート2」など)。 – Zairja
Randy - まだ同じエラーが発生しています – user1187347