gpt4 book ai didi

excel - 无错误时显示“出现错误时转到”(针对特定情况)

转载 作者:行者123 更新时间:2023-12-03 08:47:38 25 4
gpt4 key购买 nike

我用几个宏创建了一个excel,而这个特殊的部分确实让我感到沮丧,因为它在24小时前运行良好,并且没有对其进行任何更改。

我有一个表单(访问),每次有人打开Excel时都会 pop 该表单,并且他们必须输入姓氏,然后他们才能看到作为其名称的工作表以及另一个名为“统计”的工作表。其他一切都隐藏了。现在,如果有人输入“NOI”,那么您将输入“主密码”,并且几乎所有内容都会显示出来。

如果他们没有正确输入大写字母或拼写错误,则应该踢出错误消息。但是,即使输入不是错误,该表单也会显示错误消息。将显示正确的工作表,但是无论您输入什么,都会出现错误消息框。我知道必须有一个比“错误转到”更好的方法,但是我不太熟练使用“尝试...”

这是代码:

Private Sub CommandButton1_Click()
Dim pword As String
On Error GoTo endit
pword = TextBox1
Select Case pword
Case Is = "NOI": Call UnHideAllSheets
Case Is <> "NOI": Sheets(TextBox1.Value).Visible = True
End Select
Sheets("ERROR").Visible = False
Sheets("Stats").Visible = True
Sheets(TextBox1.Value).Activate
Me.Hide
Exit Sub
endit: MsgBox "Incorrect Input: check spelling and capitalization"
End Sub

我没有为单个“Case Is =”设置绝对密码,因为它是为那些完全不知道如何对VBA进行任何更新或更改的用户而设计的。所有将要使用和更新此内容的人都不知道excel中的“开发人员”标签存在。

这是Case Is提到 Call UnHideAllSheets时引用的代码:
Sub UnHideAllSheets()
Application.ScreenUpdating = False

Dim n As Single
For n = 1 To Sheets.Count
Sheets(n).Visible = True
Next n

Application.ScreenUpdating = True

Sheets("CleanData").Visible = False
Sheets("Template").Visible = True
Sheets("ERROR").Visible = False
Sheets("2018").Activate
End Sub

所有这些都是我从其他位置修改过的代码。就像我说的那样,它在24小时前运行良好。任何帮助,不胜感激!

最佳答案

  • 为此,您不需要Select语句,只需一个简单的If … Else即可。
  • 始终在预期错误的行之后停用错误处理程序。否则,以后发生的任何错误也会触发该错误处理程序,并且您可能会收到误导性的错误消息。

  • 因此,我们提出了这样的建议。
    Private Sub CommandButton1_Click()
    Dim pword As String
    pword = TextBox1.Value

    If pword = "NOI" Then
    UnHideAllSheets
    Else
    On Error GoTo endit
    Sheets(TextBox1.Value).Visible = True
    On Error GoTo 0 'always deactivate error handler after the expected error
    End If

    Sheets("ERROR").Visible = False
    Sheets("Stats").Visible = True
    Sheets(TextBox1.Value).Activate
    Me.Hide

    Exit Sub
    endit:
    MsgBox "Incorrect Input: check spelling and capitalization"
    End Sub

    关于excel - 无错误时显示“出现错误时转到”(针对特定情况),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254853/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com