gpt4 book ai didi

满足条件的 Excel VBA 停止代码

转载 作者:行者123 更新时间:2023-12-04 22:25:10 24 4
gpt4 key购买 nike

我正在努力让我的代码正常工作。

我在 excel 表上有一个按钮,当触发时

  • 检查必填字段的值为 0,如果不是,则为消息框和结束代码
  • 检查引用号是否已存在于主选项卡上,如果引用存在,消息框和结束代码
  • 如果 1 和 2 通过,则执行复制并粘贴为 3 个范围的值,然后是消息框。

  • 我尝试了多种选择,但无法使其正常工作
        Function Mand() As Boolean
    'checks that mandatory fields have been updated

    If Sheets("INPUT").Range("C11") > 0 Then MsgBox "Mandatory Fields Missing" & vbNewLine & "Changes Not Saved!"
    Mand = True

    End Function


    Function RecEx() As Boolean
    'checks that the reference number does not exisit on the High Level master list

    dup = WorksheetFunction.CountIf(Sheets("High_Level_List").Columns(1), Sheets("INPUT").Range("C17"))
    If dup > 0 Then MsgBox "This Record Exists!!!" & vbNewLine & "If saving an update, use the Save Changes button"
    RecEx = True

    End Function


    Sub RegisterNewRec()
    ' checks 2 functions, if either are TRUE then exit, otherwise update master

    If Mand Then Exit Sub

    If RecEx Then Exit Sub

    End If

    Dim rng As Range
    Set rng = Sheets("INPUT").Range("AO2:CX2")
    Sheets("High_Level_List").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

    'more code that updates master

    MsgBox "Record added to Master"

    End Sub

    最佳答案

    正如我在评论中所说,End If不需要在那里:

    If Mand Then Exit Sub
    If RecEx Then Exit Sub

    ^ 代码的外观

    或者,您可以使用:
    If Mand Or RecEx Then Exit Sub

    您还需要确保仅将函数设置为 True如果上述情况属实,则包含 End If堵塞:
    Function Mand() As Boolean
    If Sheets("INPUT").Range("C11") > 0 Then
    MsgBox "Mandatory Fields Missing" & vbNewLine & "Changes Not Saved!"
    Mand = True
    End If
    End Function

    Function RecEx() As Boolean
    dup = WorksheetFunction.CountIf(Sheets("High_Level_List").Columns(1), Sheets("INPUT").Range("C17"))
    If dup > 0 Then
    MsgBox "This Record Exists!!!" & vbNewLine & "If saving an update, use the Save Changes button"
    RecEx = True
    End If
    End Function

    问题是您正在设置 RecExMand无论哪种方式都是真实的。

    关于满足条件的 Excel VBA 停止代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598330/

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