0

此宏搜索包含错误的单元格的范围,如果发现有错误的单元格,用户窗体允许您通过 3 个不同的命令按钮将该单元格更改为“是”、“否”或“稍后查看”。如果没有发现错误(即 CheckRange 什么都没有),则会弹出一个 msgbox 让您知道,然后用户窗体应该隐藏。

问题:整个宏运行良好,除了我无法隐藏用户窗体。当没有发现错误时,消息框甚至按计划出现。但是用户表单仍然存在。

Sub UserformYes_no_review()
Dim Custchk As CustomListCheck
Set Custchk = VBA.UserForms.Add(CustomListCheck.Name)
Set CheckRange = Nothing

With New CustomListCheck
    On Error Resume Next
    Set CheckRange = Sheets("Sheet1").Range("A1:N2000").SpecialCells(xlCellTypeFormulas, xlErrors)
    On Error GoTo 0

    If CheckRange Is Nothing Then
      MsgBox "All items have been accounted for"
      CustomListCheck.Hide
      Exit Sub
    Else
        For Each Cell In CheckRange
            Cell.Select
            If VarType(ActiveCell.Value) = vbError Then
                Custchk.Show vbModeless
            End If

        Next Cell
    End If
End With

End Sub



Private Sub CommandButton1_Click()
ActiveCell.Value = "Yes"    
Call UserformYes_no     
End Sub

Private Sub CommandButton2_Click()
ActiveCell.Value = "No"
Call UserformYes_no   
End Sub

Private Sub CommandButton3_Click()
ActiveCell.Value = "Review Later"
Call UserformYes_no
End Sub
4

1 回答 1

0

通过将卸载我添加到每个命令按钮私有子来解决这个问题,如下所示

Private Sub CommandButton1_Click()
ActiveCell.Value = "Yes"
Unload Me
Call UserformYes_no


End Sub
于 2019-12-19T22:03:35.030 回答