![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Поиск фразы в столбце и создание записи в соседнем столбце |
|
|
2010 - [решено] Поиск фразы в столбце и создание записи в соседнем столбце
|
Старожил Сообщения: 329 |
Всем добрый день. Есть такая не сложная задача:
Найти столбец содержащий в первой строке слово "маршрут", в нём искать регулярные выражения как 3000,3100,3200,3300,3400,3600,3800,3801,2400 и справа от столбца с "маршрут" создать столбец "пришёл" в котором будем писать если нашлось 3000, то пишем 3000,если нет 3000, но нашлось 3100 то пишем 3100 и тд до последней записи в файле. Как это все реализовать?Помогите пожалуйста! Пример как было и как должно быть прилагаю |
|
Отправлено: 16:13, 13-12-2015 |
Старожил Сообщения: 329
|
Профиль | Отправить PM | Цитировать себе представляю это так:
sub типа пример () задаем переменные а=3000 b=3100 c=3200 d=3300 ... ищем столбец содержащий в первой строке "Маршрут" Получаем его номер дальше запускаем for со 2 до последней строки содержащей запись в столбце с "Маршрут" запускаем if содержит(входит) а then в столбец с номером "Маршрут" +1 и строка [i] пишем константу а else if содержит(входит) b then в столбец с номером "Маршрут" +1 и строка [i] пишем константу b else if содержит(входит) c then в столбец с номером "Маршрут" +1 и строка [i] пишем константу c else ... end if end sub |
------- Отправлено: 16:39, 13-12-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать В выложенном примере «B7» содержит «3050». Откуда оно взялось, если его нет в указанном Вами перечне:
Цитата blackeangel:
Цитата blackeangel:
P.S. Выложите реальный образец. Пример, как должно быть, лучше делать на отдельном листе. |
||
Отправлено: 18:07, 13-12-2015 | #3 |
Старожил Сообщения: 329
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Как понимать мою фразу?как константы.Все перечисленные это и есть константы(9 штук), которые искать надо.Во втором своём сообщении я примерно описал как программа должна работать. . |
|||
Последний раз редактировалось blackeangel, 13-12-2015 в 20:56. Отправлено: 18:53, 13-12-2015 | #4 |
Старожил Сообщения: 329
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
||||
Последний раз редактировалось blackeangel, 03-04-2017 в 22:53. Отправлено: 07:18, 14-12-2015 | #5 |
Старожил Сообщения: 329
|
Профиль | Отправить PM | Цитировать Решение найдено.
Sub raspil() Application.ScreenUpdating = False i = 2 sWhatFind = "Маршрут" Cells.Find(What:=sWhatFind, After:=ActiveCell, SearchOrder:=xlByColumns).Activate ncolumn = ActiveCell.Column Do While Cells(i, ncolumn).Value <> Empty If Cells(i, ncolumn).Value Like "*3000*" Then Cells(i, ncolumn + 1).Value = "3000" Else If Cells(i, ncolumn).Value Like "*3100*" Then Cells(i, ncolumn + 1).Value = "3100" Else If Cells(i, ncolumn).Value Like "*3200*" Then Cells(i, ncolumn + 1).Value = "3200" Else If Cells(i, ncolumn).Value Like "*3300*" Then Cells(i, ncolumn + 1).Value = "3300" Else If Cells(i, ncolumn).Value Like "*3400*" Then Cells(i, ncolumn + 1).Value = "3400" Else If Cells(i, ncolumn).Value Like "*3600*" Then Cells(i, ncolumn + 1).Value = "3600" Else If Cells(i, ncolumn).Value Like "*3800*" Then Cells(i, ncolumn + 1).Value = "3800" Else If Cells(i, ncolumn).Value Like "*3801*" Then Cells(i, ncolumn + 1).Value = "3801" Else If Cells(i, ncolumn).Value Like "*2400*" Then Cells(i, ncolumn + 1).Value = "2400" End If End If End If End If End If End If End If End If End If i = i + 1 Loop Application.ScreenUpdating = True End Sub |
Отправлено: 09:29, 15-12-2015 | #6 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать По-моему, с помощью Select Case вышло бы короче и понятнее
|
------- Отправлено: 21:02, 15-12-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать А сократить, конечно, можно было. Хотя бы использовав не вложенность, а «ElseIf», а для скорости один раз брать значение «Cells(i, ncolumn).Value», а не десяток. |
Последний раз редактировалось Iska, 15-12-2015 в 22:55. Причина: Корректировка утверждения Отправлено: 21:54, 15-12-2015 | #8 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 22:14, 15-12-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать okshef, «Good»
![]() |
Отправлено: 22:52, 15-12-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2007 - [решено] Excel получение предыдущей непустой ячейки в столбце | eus_deus | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 06-12-2015 09:17 | |
CMD/BAT - [решено] awk замена текста во втором столбце | shmel_sv@vk | Скриптовые языки администрирования Windows | 9 | 14-09-2015 14:16 | |
2010 - Подсчет ячеек одного столбца при совпадении слов в другом столбце | irvicon | Microsoft Office (Word, Excel, Outlook и т.д.) | 8 | 06-02-2013 10:12 | |
Sharepoint - Пробелы в числовом столбце | AxeL_FoX | Другие серверные продукты | 0 | 02-06-2010 21:31 | |
Интерфейс - Не выводится информация в столбце “Размеры” | CompFan | Microsoft Windows 2000/XP | 1 | 15-02-2008 01:00 |
|