Target.count导致溢出错误

时间:2014-09-10 02:37:00

标签: excel vba excel-vba overflow

我有Worksheet_SelectionChange功能。在第一行中,我想条件是如果选择了多于1个单元格,则退出。 我写道:

    If Target.Cells.Count > 1 Then Exit Sub

但是,当我选择整个工作表时,我收到一条错误消息: "运行时错误6 - 溢出"

似乎Target.Count无法处理如此庞大的数字?

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:14)

Count替换为CountLarge

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

  

CountLarge属性在功能上与Count属性相同,只是如果指定范围超过2,147,483,647个单元格(小于1 {1}}属性,Count属性将生成溢出错误2048列)。但是,CountLarge属性可以处理工作表的最大大小范围,即17,179,869,184个单元格。

答案 1 :(得分:0)

将支票分成行和列。这样,计数最多只会遇到"" 1,048,576(行),而不是17,142,120,448个单元格。

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