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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.09.2008, 14:33   #1
Bu$ter
Пользователь
 
Аватар для Bu$ter
 
Регистрация: 16.05.2008
Сообщений: 73
Вопрос Цикл For Each

Всем привет.
Помогите разобраться - в макросе много раз использую цикл
Код:
For Each element In group
[statements]
После не помню кагого раза выдает ошибку:

For control variable already in use


When you nest For...Next loops, you must use different control variables in each one. This error has the following cause and solution:

An inner For loop uses the same counter as an enclosing For loop.
Check nested loops for repetition. For example, if the outer loop uses For Count = 1 To 25, the inner loops can't use Count as the control variables.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).



Код:
Windows("sales").Activate
Sheets("sale").Select
Range("a3").Select
For i = 1 To 10                                              
Selection.End(xlDown).Select
Next i
Range(Selection, Selection.End(xlDown)).Select
Range(Cells(1, 1), Cells(ActiveCell.Row, ActiveCell.Column).Offset(rowOffset:=-1, columnOffset:=0)).Select

t = 0
 
For Each myCell In Selection
   t = t + 1
Этот блок неизменным (в том числе и переменную "t") я использую много раз в макросе (меняются только листы)

Как это можно решить?

Последний раз редактировалось Bu$ter; 24.09.2008 в 14:36.
Bu$ter вне форума
Старый 24.09.2008, 15:14   #2
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Bu$ter Посмотреть сообщение
Код:
For Each myCell In Selection
   t = t + 1
А де Next myCell?
valerij вне форума
Старый 24.09.2008, 15:53   #3
Bu$ter
Пользователь
 
Аватар для Bu$ter
 
Регистрация: 16.05.2008
Сообщений: 73
По умолчанию

Цитата:
Сообщение от valerij Посмотреть сообщение
А де Next myCell?
Спасибо, заработало... )))
Bu$ter вне форума
Старый 24.09.2008, 16:02   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Bu$ter, как-то я давал ссылку, но тогда сайт не работал.
Посмотрите вот это Управляющие структуры ... Циклы. Сайт сейчас работает и все ОЧЕНЬ хорошо описано.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума
Старый 24.09.2008, 16:25   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

может просто так написать? (если кроме количества отмеченых ячеек ничего не интересует)
Код:
Windows("sales").Activate
Sheets("sale").Select
Range("a3").Select
For i = 1 To 10                                              
Selection.End(xlDown).Select
Next i
Range(Selection, Selection.End(xlDown)).Select
Range(Cells(1, 1), Cells(ActiveCell.Row, ActiveCell.Column).Offset(rowOffset:=-1, columnOffset:=0)).Select

t = Selection.Count
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 24.09.2008, 16:49   #6
Bu$ter
Пользователь
 
Аватар для Bu$ter
 
Регистрация: 16.05.2008
Сообщений: 73
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
может просто так написать? (если кроме количества отмеченых ячеек ничего не интересует)
Код:
Windows("sales").Activate
Sheets("sale").Select
Range("a3").Select
For i = 1 To 10                                              
Selection.End(xlDown).Select
Next i
Range(Selection, Selection.End(xlDown)).Select
Range(Cells(1, 1), Cells(ActiveCell.Row, ActiveCell.Column).Offset(rowOffset:=-1, columnOffset:=0)).Select

t = Selection.Count
Отлично. Так гораздо удобнее. Спасибо.
Bu$ter вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл Sota Паскаль, Turbo Pascal, PascalABC.NET 1 24.03.2008 19:50
Цикл... Лёка PHP 5 03.02.2008 21:38
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34
3-ой цикл LeoN Общие вопросы Delphi 5 12.06.2007 14:15