Страница: 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
Дальше идёт условие: если значение ячейки труе- опять переход.
Если нужно есть блок схема, но я думаю я понятноизложил суть.
Заранее благодарен всем откликнувшимся!
Ответить
|
Номер ответа: 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" .Copy Destination:=Range("O288"
Получаю результат: в ячейку О288 скопировалась формула с О287, причем со смещением суммируемого диапазона.
И ещё, можно создать кнопку с действием "выполнить макрос ...."?
Ответить
|
Номер ответа: 3 Автор ответа: Дмитрий
Вопросов: 1 Ответов: 2
|
Профиль | | #3
|
Добавлено: 05.07.07 00:03
|
Я, наверное не правильно выразился- получить доступ к ячейке, а не выделить.
Я был не прав,разобрался.
Ответить
|
Страница: 1 |
Поиск по форуму