Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2010, 17:23   #1
Domain
 
Регистрация: 01.10.2010
Сообщений: 5
По умолчанию Перебор значений таблицы

Подскажите как правильно перебирать значения таблицы если значение берется в виде : Range ("A2").Value

И еще как можно проверить скриптом, существует ли директория?
Domain вне форума Ответить с цитированием
Старый 04.10.2010, 18:46   #2
Aiden
Пользователь
 
Регистрация: 12.09.2007
Сообщений: 34
По умолчанию

dim i as integer
for i=1 to n
Range("A" & CStr(i)).Value
end

Лучше перебирать через Cells(a,b), где а-номер строки, b-номер столбца. Скорость перебора гораздо выше будет.

Для папки:

sub CheckDir
dim path as string
On Error GoTo nd
ChDir (path)
msgbox("Папка существует")
Exit Sub
nd:
MsgBox ("Папка не существует")
end sub

path - путь к папке

Последний раз редактировалось Aiden; 04.10.2010 в 18:52.
Aiden вне форума Ответить с цитированием
Старый 05.10.2010, 05:33   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Скорость перебора гораздо выше будет.
Да. Конечно. Потому что сам оператор конкатенации достаточно "медленный". К тому же, если требуется перебрать ячейки в нескольких строках и нескольких столбцах, то предложенный выше способ потребует вложенных циклов. Увеличить скорость перебора ячеек можно, если вместо оператора For...Next использовать Eor Each...Next. Например, для перебора всех ячеек в диапазоне "A1:F10" можно использовать код:
Код:
Sub Main()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In [A1:F10]
        'Ваши действия с каждой ячейкой диапазона
    Next
End Sub
Хочу обратить Ваше внимание и на то, что в отличии от VB, в VBA Excel есть "куча" своих собственных методов работы с ячейками листа, применяя которые, зачастую можно не прибегать к перебору всех ячеек таблицы, что есть существенно быстрее. Все зависит от конкретной задачи.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 05.10.2010 в 05:37.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор всех доступных значений! AquaKlaster Общие вопросы Delphi 40 02.03.2015 12:27
Перебор значений для поиска RailOS Microsoft Office Excel 5 17.06.2010 16:16
Перебор значений genf Microsoft Office Excel 0 18.12.2009 10:56
Таблицы в WORD. Перебор ячеек или поиск? sergeos Microsoft Office Word 7 09.06.2009 17:57
Сумма значений таблицы условию. Drummer_SV Microsoft Office Excel 4 13.05.2009 16:24