我在这个模块中有代码:
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'
答案 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 工作表中解决这个问题的是删除我试图隐藏的范围内的评论。好像应该隐藏的范围内不允许评论。