|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.06.2009, 19:46 | #1 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
Упростить вырожение
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [O10].Address Or Target.Address = [O3].Address Then If [O10] = [O3] Then Macros2 If Target.Address = [O11].Address Or Target.Address = [O3].Address Then If [O11] = [O3] Then Macros3 If Target.Address = [O12].Address Or Target.Address = [O3].Address Then If [O12] = [O3] Then Macros4 If Target.Address = [O13].Address Or Target.Address = [O3].Address Then If [O13] = [O3] Then Macros5 If Target.Address = [O14].Address Or Target.Address = [O3].Address Then If [O14] = [O3] Then Macros6 If Target.Address = [O15].Address Or Target.Address = [O3].Address Then If [O15] = [O3] Then Macros7 If Target.Address = [O16].Address Or Target.Address = [O3].Address Then If [O16] = [O3] Then Macros8 If Target.Address = [O17].Address Or Target.Address = [O3].Address Then If [O17] = [O3] Then Macros9 End Sub А макрос: Range("I10:N10").Select Range("N10").Activate Selection.Borders(xlDiagonalDown).L ineStyle = xlNone Selection.Borders(xlDiagonalUp).Lin eStyle = xlNone Каждый макрос на строку ниже, т.е. следующий Range("I11:N11").Select Последний раз редактировалось KinderX; 29.06.2009 в 19:59. |
29.06.2009, 19:52 | #2 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
А то больше 3 макросов не выполняет. Нашел причину
Последний раз редактировалось KinderX; 29.06.2009 в 20:00. |
29.06.2009, 20:22 | #3 |
Форумчанин
Регистрация: 25.08.2008
Сообщений: 159
|
УПРОСТИТЬ НЕОБХОДИМО:
Код:
|
29.06.2009, 20:27 | #4 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
Я в програмирование не понимаю, так только на образцах.
Опиши немного |
30.06.2009, 18:18 | #5 |
Форумчанин
Регистрация: 25.08.2008
Сообщений: 159
|
в твоем первом коде было много "одинакового"
Программирование основывается на логике, в твоем примере если ты изменил ячейку О3, то выполнялись все строки кода: Код:
Код:
Код:
Код:
for i = [O10].row to [O17].row - запускаем цикл переменной i(которую только что создали), первоначальное значение переменной равно номеру строки ячейки О10 а конечное номеру строки О17, шаг изменения переменной = 1(по умолчанию) with range("I" & i & ":N" & i) - этот кусок кода выбирает диапазон ячеек аналогично твоему примеру: Range("I10:N10").Select, т.е. твой код можно преобразовать в Range("I" & 10 ":N" & 10).Select(где 10 - аналог переменной i), знак & - объединяет строки. вот и получается что мы циклом перебираем все нужные нам диапазоны. А во втором блоке мы просто подставляем номер строки вместо i. вроде все. |
30.06.2009, 18:30 | #6 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
Помагите пожалйста
Помогите упростить вырожение в VBA.
В листе7 If Target.Address = [P10].Address Or Target.Address = [O3].Address Then If [P10] = [O3] Then Macros110 Должно быть до Р45. P.S. Четвертый день в глаза вижу VBA. Не получается создать цикл. А макросы тоже сдвигаются от 10 до 45 строки. Макрос Menu1, открывает окно... там есть очистить, а надо вторую чтобы обвести границы, тоже пытался не чего не выходит. И как можно сделать чтобы вместо того чтобы в О2 вносить число число вводить в окне Menu1. И я наверное уже много прошу, как создать кнопку предварительный просмотр. А так же я так и не могу найти уже третий день как можно сделать чтобы нижний текст под листом на печать вставить под таблицу, можно ли через VBA налажить его сверху,при выводи на печать. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите упростить простой макрос | frantic150 | Microsoft Office Excel | 2 | 23.06.2009 04:55 |
Помогите упростить код | Ralf_ru | Помощь студентам | 7 | 01.04.2009 17:17 |
Упростить формулу | Stif-rva | Microsoft Office Excel | 7 | 09.03.2009 11:03 |
Помогите упростить с помощью VBA | Dubineanschi | Microsoft Office Excel | 3 | 22.10.2008 14:21 |