2014-02-04 1 views
-1

Я получаю сообщение об ошибке переполнения, когда я пытался использовать функциюполучение ошибка переполнения, когда я использовал функцию «ActiveSheet.UsedRange.Rows.Count», чтобы найти количество в Excel VBA

ActiveSheet.UsedRange.Rows.Count

in VBA Excel

+0

Возможный дубликат [Excel VBA, ошибка потока] (http://stackoverflow.com/questions/6327069/excel-vba-over-flow-error) –

+2

Даже если вопрос, вероятно, уже был дан, вы должны положить немного больше деталей, поэтому нам не нужно гадать ... –

ответ

0

Вы определили свою переменную как целое, а не длинное или плавающее? Если число строк больше 32256 или что-то слишком большое, чтобы быть целым числом.

+0

[имел в виду 32767?] (http://msdn.microsoft.com/en-us/library/office/aa164754 (v = office.10) .aspx) –

6

Я иду на предположении, у вас есть что-то вроде следующего:

Dim x as Integer 

x = ActiveSheet.UsedRange.Rows.Count 

Чтобы исправить просто изменить его на:

Dim x as Long 

x = ActiveSheet.UsedRange.Rows.Count 

Или

Dim x& 

x = ActiveSheet.UsedRange.Rows.Count 

Амперсанд (&) символ объявления типа представляет собой длинный

Типы данных Integer и Long могут содержать как положительные, так и отрицательные значения. Разница между ними заключается в их размер: Целочисленные переменные могут содержать значения между 32768 и 32767, в то время как длинные переменные могут варьироваться от -2147483648 до 2147483647

Поскольку рабочие листы Excel может иметь более 32767 строк, вы не можете ВСЕГДА вставьте число строк в целое число и должно использовать Long.

+0

или на 64-битной машине вы можете использовать ['Dim x as LongLong' или' Dim x^'] (http://vba4all.wordpress.com/category/hello-world/vba-syntax/) –

+1

@ mehow Но на данный момент листы excel могут содержать до 1048576 строк. Хотя правильно, вы можете использовать LongLong, если вы работаете на 64-битной машине и ссылаетесь на используемые ячейки, поскольку это может быть до 17,179,869,184, и будет переполнять Long, хотя с точки зрения производительности вам следует избегать работы с этим количеством ячеек сразу, и если у вас столько данных, Excel, скорее всего, не лучший способ работать с данными. – user2140261

+0

+1 спасибо за это, я уже говорил, что тысячи раз так;) –

Смежные вопросы