gpt4 book ai didi

excel - 如果 OptionButton 处于事件状态,则 TextBox 是必需的

转载 作者:行者123 更新时间:2023-12-04 20:51:49 25 4
gpt4 key购买 nike

在我的用户窗体中,我有几个框架、几个选项按钮和几个文本框。您可以在屏幕截图中看到一个示例。

enter image description here

现在我希望,如果我检查中风险或高风险选项按钮,文本框(“-评论风险-”)应该是强制性的,如果它是空的或没有添加,则应该显示错误消息。

到目前为止,这是我的宏:

Sub Comment_Check()
'obMedium = OptionButton "Medium"
'obHigh = OptionButton "High"
'txtRisk = TextBox "- Comment Risk -"

With UserForm1
For x = 1 to 6
If .Controls("obMedium" & x).Value = True Or .Controls("obHigh" & x).Value = True _
And .Controls("txtRisk" & x).Value = "" Or .Controls("txtRisk" & x).Value = "- Comment Risk -" Then
.Controls("txtRisk" & x).BackColor = RGB(255, 75, 80)
MsgBox "Error Message"
End If
Next
End With
End Sub

现在我的问题是,如果我检查 Medium并在风险文本框中写入一些内容,文本框将显示为红色并显示错误消息。如果我检查 High并写一些东西到 TextBox 一切正常。

我必须改变什么,这两种方式都会起作用。

最佳答案

主要问题是您必须使用括号对 Or 进行分组。 & And逻辑上的陈述。

此外,我建议进行以下更改:

  • - Comment Risk -- Comment Chance -到 TextBoxes 上方的 Label 控件中,而不是将其写入 TextBox 本身。因此,即使填充了数据,用户也始终可以看到哪个是哪个。此外,代码会更容易。
  • 使用开关ErrorOccured你转True在您的循环中,否则您将连续收到 6 条错误消息(最坏的情况)。
  • 使用Option Explicit并正确声明所有变量。

  • 像下面这样的东西应该可以工作。
    Option Explicit

    Sub Comment_Check()
    Dim ErrorOccured As Boolean

    With UserForm1
    Dim x As Long
    For x = 1 to 6
    If (.Controls("obMedium" & x).Value Or .Controls("obHigh" & x).Value) _
    And .Controls("txtRisk" & x).Value = vbNullString Then
    .Controls("txtRisk" & x).BackColor = RGB(255, 75, 80)
    ErrorOccured = True
    End If
    Next x
    End With

    If ErrorOccured Then
    MsgBox "Error Message"
    End If
    End Sub

    如果您想在第二次运行中将它们变为非红色(例如,如果您在用户更正他的编辑后重新检查)然后添加
    ElseIf (.Controls("obMedium" & x).Value Or .Controls("obHigh" & x).Value) And .Controls("txtRisk" & x).Value <> vbNullString Then
    .Controls("txtRisk" & x).BackColor = RGB(50, 168, 82) 'green
    'don't set ErrorOccured to False here!

    就在 End If 之前行,否则即使用户更正了他的编辑,该框也会保持红色。

    关于excel - 如果 OptionButton 处于事件状态,则 TextBox 是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57567160/

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