【问题标题】:When I double click on a cell to open a form, a checkbox on the form behind my cursor is checked/unchecked. How can I prevent this from happening?当我双击一个单元格打开一个表单时,我光标后面的表单上的一个复选框被选中/取消选中。我怎样才能防止这种情况发生?
【发布时间】:2016-06-22 19:17:28
【问题描述】:

我有一个出现在特定单元格的双击事件上的表单。

表单包含一个列表框,其中包含一堆复选框,在我的 _Activate() 子中,复选框根据活动工作表上的值设置为 true 或 false。

麻烦的是,当表单在光标后面打开时,双击打开表单的第二次单击也会选中/取消选中表单中的复选框。

在代码设置复选框值之前,我已经尝试在激活子中粘贴“DoEvents”,但它没有产生任何影响 - 我的光标后面的表单打开的复选框将被选中/取消选中。

我不认为代码会有多大帮助,但它基本上如下:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target = Range("aParticularRangeName") Then
        frmSelectStuff.Show
    End If

End Sub

Public Sub UserForm_Activate()

    Dim iRegions As Integer
    Dim sRecheck As Variant
    Dim sRecheckList() As String

    sRecheckList = Split(ActiveCell.Value, "; ")
    For Each sRecheck In sRecheckList
        For iRegions = 0 To lbRegionsTemp.ListCount - 1
            If sRecheck = lbRegionsTemp.List(iRegions) Then lbRegionsTemp.Selected(iRegions) = True
        Next
    Next

End Sub

【问题讨论】:

  • 如果您向我们展示您的代码,将会非常有帮助。 ;)
  • @Tom 完成。希望这会有所帮助。
  • 啊,我们有了。问题在于BeforeDoubleClick-事件。看看这个问题:stackoverflow.com/questions/13098369/…
  • @Tom 太棒了!我寻找它,但找不到它来挽救我的生命。那么重复的问题。耻辱! +1

标签: vba excel


【解决方案1】:

使用 Cancel = True 怎么样?

If Target = Range("aParticularRangeName") Then
    Cancel = True
    frmSelectStuff.Show
End If

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2023-03-21
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多