7

このモジュールにコードがあります:

Sub HideSalTable()

User = Worksheets("log").Range("R1").Value
If User = ThisWorkbook.Worksheets("SSSSSS").Range("za1").Value Then
Columns("S:AA").EntireColumn.Hidden = True

ElseIf User = ThisWorkbook.Worksheets("SSSSSS").Range("za3").Value Then
Columns("S:AA").EntireColumn.Hidden = False

ElseIf User = ThisWorkbook.Worksheets("SSSSSS").Range("za4").Value Then
Columns("S:AA").EntireColumn.Hidden = False

End If

End Sub

次のコードを使用して、ThisWorkbook.Worksheets("SSSSSS") にリダイレクトするボタンがあります。

Private Sub Change_SSSSSS_Button_Click()

 Dim pass1 As String
  Dim pass2 As String
  pass1 = ThisWorkbook.Worksheets("SSSSSS").Range("za3").Value
   pass2 = ThisWorkbook.Worksheets("SSSSSS").Range("za4").Value
  Dim Inp
    Dim lTries As Long



    lTries = 1
    Do
        Inp = InputBoxDK("enter password", "Zmhnk")
        If Inp = "" Or Inp = vbCancel Then Exit Sub          '* Cancel button pressed or nothing entered
        If Inp = (pass1) Or Inp = (pass2) Then
            Exit Do
        End If
        lTries = lTries + 1
        If lTries > 4 Then
            MsgBox "Error", vbInformation, "Zmhnk"
            Exit Sub
        Else
            If MsgBox("try again", vbYesNo, "error_Zmhnk") = vbNo Then Exit Sub
        End If
    Loop

 Application.ScreenUpdating = False

 Sheets("SSSSSS").Visible = True
 Sheets("SSSSSS").Activate

 Application.ScreenUpdating = True

End Sub

問題は、ユーザーが 2 番目のコードでボタンを押したときにエラーが発生し、その理由がわかりません。

エラー:

Unable to set the hidden property of the range class run time error '1003'
4

3 に答える 3

13

二つのこと

1) 範囲を完全に修飾していません。リダイレクトされていることは理解していますが、これははるかに安全です。

Columns("S:AA").EntireColumn.Hidden = True

に変更します

ThisWorkbook.Sheets("SSSSSS").Columns("S:AA").EntireColumn.Hidden = True

2) あなたのワークシートは保護されていると思います。保護を解除する必要があります。次のようにしてそれを行うことができます

ThisWorkbook.Sheets("SSSSSS").Unprotect "myPassword"
于 2012-09-05T06:56:04.740 に答える
-1

同様の問題がありました(エラーコードのみが1004でしたが、エラーメッセージは同じでした)。Excel シートの問題を解決したのは、非表示にしようとした範囲内のコメントを削除することでした。非表示にすべき範囲のコメントは許可されていないようです。

于 2021-02-23T12:38:00.730 に答える