|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.10.2009, 20:44 | #21 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
Да я и не сомневаюсь!!! Вот плохой из меня писака, Игорь прав.
Разберемся, возьмем начало и конец макроса Код:
Нужно вписать эти имена на 9 листах, в яч. С3 :С43 с шагом 54. В случае, если в этих именах встретится слово УП, окрасить УП. Т. Е. действие сразу, проверяет на УП -вписавает, проверяет на УП -вписавает + окрашивает Ну и зачем изобретать еще макросы, если, уверен, можно все сделать тут, но я ненаю, как. Почему, так не работает Код:
Последний раз редактировалось valerij; 31.10.2009 в 21:15. |
31.10.2009, 21:18 | #22 |
Пользователь
Регистрация: 09.12.2008
Сообщений: 56
|
ИМХО, пока Вы не внесете данные в ячейку, то и не сможете ее обработать.
У Вас идет групповая операция - Вы присваиваете значение массива диапазону ячеек, а вот редактировать необходимо 1 ячейку. Поэтому, возможно меня и поправят, лучше будет Вам сначала значения присвоить, а уже потом пробежаться поиском и покрасить Ваш УП
обычно я на http://planetaexcel.ru/forum.php
|
31.10.2009, 21:59 | #23 | |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
Цитата:
Код:
Последний раз редактировалось valerij; 31.10.2009 в 22:41. |
|
01.11.2009, 13:16 | #24 |
Пользователь
Регистрация: 09.12.2008
Сообщений: 56
|
Была ошибка, вчера не досмотрел. Совпало последняя строка с нужными данными. Добавил проверку и выход из Do при отсутствии значений...
Sub TestKrasim() Dim iSht As Worksheet Dim iFoundRng As Range, firstAddress As String, findData As String, p As Integer Dim iRow As Long findData = "УП" Application.ScreenUpdating = False For Each iSht In ThisWorkbook.Sheets ' If iSht.Name <> iShtRplData.Name Then With iSht Set iFoundRng = .Columns(3).Find(What:=findData, LookIn:=xlValues, LookAt:=xlPart) 'поиск If Not iFoundRng Is Nothing Then 'если нашли iRow = iFoundRng.Row p = InStr(iFoundRng, findData) With iFoundRng.Characters(Start:=p, Length:=2).Font .FontStyle = "bold" .Color = -16776961 End With Do 'цикл поиска, т.к. одно и то же значение может встречаться много раз Set iFoundRng = .Range(.Cells(iRow + 1, 3), .Cells(.Cells(Rows.Count, 3).End(xlUp).Row, 3)).Find(What:=findData, LookIn:=xlValues, LookAt:=xlPart) 'продолжаем поиск на том же листе If iFoundRng Is Nothing Then Exit Do 'если больше ничего нет выход из цикла iRow = iFoundRng.Row p = InStr(iFoundRng, findData) With iFoundRng.Characters(Start:=p, Length:=2).Font .FontStyle = "bold" .Color = -16776961 End With Loop While iRow <> .Cells(Rows.Count, 3).End(xlUp).Row End If End With Next Application.ScreenUpdating = True MsgBox "Замена по листам проведена!", 64, "Замена" End Sub
обычно я на http://planetaexcel.ru/forum.php
|
01.11.2009, 16:21 | #25 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
А теперь посмотри как я сам сделал, все работает по всем 9 листам, а полный, готовый модуль в аттаче
Код:
Последний раз редактировалось valerij; 01.11.2009 в 16:46. |
01.11.2009, 17:58 | #26 |
Пользователь
Регистрация: 09.12.2008
Сообщений: 56
|
Если Вас все устраивает - рад за Вас.
ИМХО самая "медленная" операция в Ехс - обращение к ячейке. Ваш вариант просто просматривает каждую ячейку из 1500, и потом выполняет действие. В этом случае Find будет будет несколько быстрее
обычно я на http://planetaexcel.ru/forum.php
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка | Gotessa | JavaScript, Ajax | 1 | 09.05.2009 16:05 |
цвет ссылки изменить | wolf950 | HTML и CSS | 3 | 16.03.2009 18:32 |
Изменить цвет неактивного Edit | Xardas | Общие вопросы Delphi | 11 | 20.01.2008 22:38 |
Как изменить цвет | Михаил Юрьевич | Общие вопросы Delphi | 5 | 14.01.2008 17:38 |
Изменить цвет при помощи макроса | А. Долматов | Microsoft Office Excel | 5 | 26.09.2007 21:02 |