VBA: границы таблиц и ошибка переполнения 6 - PullRequest
1 голос
/ 17 февраля 2011

Я пытаюсь получить границы таблиц Excel, используя VBA. Я уже сделал это с помощью C #, но теперь мне нужно попытаться перевести этот код на VBA.

Одна проблема заключается в том, что синтаксис кажется настолько разным, что код не выглядит даже похожим, или что он просто делает то же самое! Я думаю, что довольно близок к определению размеров таблицы, но я получаю это сообщение Run-time error '6': Overflow.

Вот код:

Dim currentRow As Integer
Dim totalRow As Integer
Dim column As Integer

currentRow = 2

Do
ActiveCell.Offset(1, 0).Select
totalRow = totalRow + 1
Loop Until IsEmpty(ActiveCell.Offset(0, 1)) = False

Ошибка возникает, когда она близка к выполнению с Do loop. Я прочитал другой ответ на форуме, в котором говорилось, что VB работает медленно, и что потенциальная ошибка в том, что Do loop идет слишком быстро и, таким образом, получает переполнение. Если это так, я совершенно не уверен, как это решить.

У кого-нибудь есть способ исправить проблему переполнения?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Используйте метод .End для Range вместо цикла, чтобы найти первую пустую ячейку.

0 голосов
/ 17 февраля 2011

Возможно, вы захотите взглянуть на UsedRange.Попробуйте

 Dim totalRow As Long

Используемый диапазон: http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.usedrange(VS.80).aspx
Тип данных: http://msdn.microsoft.com/en-us/library/aa164754(v=office.10).aspx

...