vba 无法设置范围类的隐藏属性运行时错误“1003”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12274131/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 13:57:23  来源:igfitidea点击:

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

excel-vbavbaexcel

提问by Zaid Kalthoum

I have code in this module:

我在这个模块中有代码:

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

I have a button to redirect me to ThisWorkbook.Worksheets("SSSSSS") with this code:

我有一个按钮可以使用以下代码将我重定向到 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

The problem is when the user presses the button with the 2nd code I face an error and I don't know why.

问题是当用户按下带有第二个代码的按钮时,我遇到了一个错误,我不知道为什么。

The error:

错误:

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

回答by Siddharth Rout

Two things

两件事情

1) You have not fully qualified your range. I understand that you are getting redirected but this is much safer.

1) 您还没有完全限定您的范围。我知道您正在被重定向,但这更安全。

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

Change it to

将其更改为

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

2) I believe your worksheet is protected. You have to unprotect it. You can do that as follows

2)我相信您的工作表受到保护。你必须取消保护它。你可以这样做

ThisWorkbook.Sheets("SSSSSS").Unprotect "myPassword"

回答by Rtronic

when you have the control from the Form there is no Problem
but if you have it from the worksheet itself then it works actually but with Error:1004
so just use ( On Error Resume Next)

当您从表单获得控件时,没有问题,
但是如果您从工作表本身获得它,那么它实际上可以工作,但错误:1004,
所以只需使用( On Error Resume Next )

Private Sub ComboBox1_Change()
Dim wsMon As Worksheet
Set wsMon = ThisWorkbook.Worksheets("Montag")
On Error Resume Next
Select Case ComboBox1.ListIndex
       Case 0
            xHide (False)
            wsMon.Rows("12:25").EntireRow.Hidden = True
            xHide (True)
       Case 1
            xHide (False)
            wsMon.Rows("12:25").EntireRow.Hidden = False
            wsMon.Rows("19:25").EntireRow.Hidden = True
            xHide (True)
       Case 2
            xHide (False)
            wsMon.Rows("12:25").EntireRow.Hidden = False
            xHide (True)
End Select

End Sub

xHide is a Boolean Function : true

xHide 是一个布尔函数:true

Application.ScreenUpdating = True
Application.DisplayAlerts = True

or False

或错误

Application.ScreenUpdating = False
Application.DisplayAlerts = False