5

I have Worksheet_SelectionChange function. In the first line I wanted to condition that if more than 1 cell is selected then exit. I wrote:

    If Target.Cells.Count > 1 Then Exit Sub

However, when I select the whole worksheet, I get an error message: "Run time error 6 - Overflow"

It seems like Target.Count can't handle such large numbers ?

What can I do to get around this?

1

2 Answers 2

21

Replace Count with CountLarge.

Documentation: http://msdn.microsoft.com/en-us/library/office/ff196838(v=office.15).aspx

The CountLarge property is functionally the same as the Count property, except that the Count property will generate an overflow error if the specified range has more than 2,147,483,647 cells (one less than 2048 columns). The CountLarge property, however, can handle ranges up to the maximum size for a worksheet, which is 17,179,869,184 cells.

Sign up to request clarification or add additional context in comments.

Comments

0

Break the check into rows and columns. This way, the count encounters a maximum of "only" 1,048,576 (rows) as opposed to 17,142,120,448 cells.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Rows.Count > 1 Then Exit Sub
    If Target.Columns.Count > 1 Then Exit Sub
    ' do stuff
End Sub

1 Comment

Good idea — but fails if multiple cells are selected using e.g. Ctrl-click.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.