选择所有单元格时,Selection.Count溢出

Leo*_*Leo 4 excel vba overflow excel-vba

在Excel 2007中,我想在单击单元格(L2)时提示消息.我有一段代码工作,但问题是,当我选择工作表中所有的细胞Ctrl+A,我得到错误号06: overflow上线If Selection.Count = 1 Then

强制性VBA代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("L2")) Is Nothing Then
            MsgBox "ACTION!"
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

Gar*_*ent 7

轻松修复:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.CountLarge = 1 Then
        If Not Intersect(Target, Range("L2")) Is Nothing Then
            MsgBox "ACTION!"
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。[CountLarge是Count的64位等效项](https://docs.microsoft.com/zh-cn/office/vba/api/excel.range.countlarge),因此不会遇到溢出。 (2认同)

小智 3

尝试这个:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        If InStr(1, CStr(Target.Address), ":") < 1 Then
            If Selection.Count = 1 Then
                If Not Intersect(Target, Range("L2")) Is Nothing Then
                    MsgBox "ACTION!"
                End If
            End If
        End If

End Sub
Run Code Online (Sandbox Code Playgroud)