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

时间:2012-09-05 03:31:12

标签: excel-vba vba excel

我在这个模块中有代码:

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

问题是当用户按下带有第二个代码的按钮我遇到错误而我不知道原因。

错误:

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

3 个答案:

答案 0 :(得分:12)

两件事

1)您尚未完全确定您的射程。我知道你正在被重定向,但这更安全。

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

将其更改为

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

2)我相信您的工作表受到保护。你必须取消保护它。您可以按照以下方式执行此操作

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

答案 1 :(得分:0)

当您从表单中获得控件时,没有问题
但是,如果您从工作表本身中获得它,那么它实际上可以工作,但是出现错误: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是布尔函数: 是

Application.ScreenUpdating = True
Application.DisplayAlerts = True

或错误

Application.ScreenUpdating = False
Application.DisplayAlerts = False

答案 2 :(得分:-1)

我遇到了类似的问题(只有错误代码是 1004,但错误消息是相同的)。在我的 Excel 工作表中解决这个问题的是删除我试图隐藏的范围内的评论。好像应该隐藏的范围内不允许评论。