Страница: 1 |
Вопрос: Вложенные циклы | Добавлено: 03.07.07 00:17 |
Автор вопроса: ![]() |
Имеем журнал. Требуется проверить диапазон ячеек- если присутствует ??.06.2007 следует переместиться на 3 столбца вправо(знаю, что использовать нужно метод offset), но не знают как реализовать этот переход.
Ниже привожу кусок кода, всего имеется ещё 3 вложения, в которых тоже необходимо осуществить переход. Sub Worksheet_Change(ByVal Target As Range) Dim rgData As Range Dim cell As Range Set rgData = Range("A283:A400") If Not (Application.Intersect(Target, rgData) Is Nothing) Then If Application.WorksheetFunction.CountA(rgData) > 0 Then 'Изменена ячейка из контролируемого диапазона 'Проверяем каждую ячейку из контролируемого диапазона For Each cell In rgData If cell.Value Like "*??.06.2007*" Then здесь необходимо осуществить переход. Думал решить этот вопрос с помощью оператора GoTo, но ничего не получилось: Sub Worksheet_Change(ByVal Target As Range) Dim rgData As Range Dim cell As Range Set rgData = Range("A283:A400") If Not (Application.Intersect(Target, rgData) Is Nothing) Then If Application.WorksheetFunction.CountA(rgData) > 0 Then 'Изменена ячейка из контролируемого диапазона 'Проверяем каждую ячейку из контролируемого диапазона For Each cell In rgData If cell.Value Like "*??.06.2007*" Then GoTo awto: awto: Set rgData = cell.offset(0, 3).activate Дальше идёт условие: если значение ячейки труе- опять переход. Если нужно есть блок схема, но я думаю я понятноизложил суть. Заранее благодарен всем откликнувшимся! |
Ответы | Всего ответов: 3 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 82 |
Профиль | Цитата | #1 | Добавлено: 03.07.07 11:22 |
For Each cell In rgData
If cell.Value Like "*??.06.2007*" Then cell.Offset(0, 3).Select End If Next |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #2 | Добавлено: 04.07.07 21:22 |
Я, наверное не правильно выразился- получить доступ к ячейке, а не выделить. Решил проблему так:
For Each cell In rgData If cell.Value Like "*??.07.2007*" Then Set cell = cell.Offset(0, 3) If cell.Value Like "* *" Then .... End if End if Next И всё работает. И ещё вопрос: необходимо скопировать данные с ячейки(в ячейке результат суммы). Например с ячейки О287 в О288. Пишу: Range("O287" ![]() ![]() Получаю результат: в ячейку О288 скопировалась формула с О287, причем со смещением суммируемого диапазона. И ещё, можно создать кнопку с действием "выполнить макрос ...."? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #3 | Добавлено: 05.07.07 00:03 |
Я, наверное не правильно выразился- получить доступ к ячейке, а не выделить. Я был не прав,разобрался. |
Страница: 1 |
|