Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2011, 15:30   #1
123XYZ
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 10
По умолчанию Поиск и очистка значений

Здравствуйте!

Я с VBA для Excel знаком плохо, на данный момент, и это задание вызывает некоторые трудности.

Требуется пройтись по конкретной строке (строка 6 в примере)
если находит цифру 12, то макрос должен очистить все, что идет после столбца со значением 12.
PS заместо цифры 12 может быть другое значение например [1_123]

Пример можно поглядеть тут:
http://www.sendspace.com/file/cg7oot

Заранее вмем спасибо!

Последний раз редактировалось 123XYZ; 15.03.2011 в 15:49.
123XYZ вне форума Ответить с цитированием
Старый 15.03.2011, 16:30   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот весь код:

Код:
Sub test()
    On Error Resume Next
    Range(Rows(6).Find("12", , xlValues, xlWhole).Next, Cells(Columns.Count)).EntireColumn.ClearContents
End Sub
Пример в файле: http://excelvba.ru/XL_Files/Sample__...__18-30-01.zip

Смотрите также:
Надстройки и программы для поиска в Excel:
http://excelvba.ru/category/Excel/search

Надстройка для поиска на всех листах книги Excel
Надстройка для поиска в Excel с выводом результатов на новый лист
Поиск из поля на панели инструментов Excel

Последний раз редактировалось EducatedFool; 13.11.2011 в 17:28.
EducatedFool вне форума Ответить с цитированием
Старый 15.03.2011, 17:16   #3
123XYZ
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 10
Хорошо

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вот весь код:

Код:
Sub test()
    On Error Resume Next
    Range(Rows(6).Find("12", , xlValues, xlWhole).Next, Cells(Columns.Count)).EntireColumn.ClearContents
End Sub
Пример в файле: http://excelvba.ru/XL_Files/Sample__...__18-30-01.zip
Спасибо большое! В описании забыл написать, что все ячейки имеют границы - их тоже нужно очищать
123XYZ вне форума Ответить с цитированием
Старый 15.03.2011, 17:25   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
забыл написать, что все ячейки имеют границы - их тоже нужно очищать
замените ClearContents на Clear
EducatedFool вне форума Ответить с цитированием
Старый 15.03.2011, 18:24   #5
pooli
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 45
По умолчанию

а как удалить все что осталось после замененного значения,если поиск и замена по правилу в одной (тут же)ячейке?

пример кода
.Replace What:="А", Replacement:="Б", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'а после этого в ячейке нужно удалить все что там осталось!
pooli вне форума Ответить с цитированием
Старый 16.03.2011, 14:18   #6
123XYZ
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
замените ClearContents на Clear
пробовал на другом отчете - выдает ошибку: изменить часть объедененной ячейки невозсожно.

http://www.sendspace.com/file/m6wdr0
123XYZ вне форума Ответить с цитированием
Старый 30.03.2011, 11:49   #7
123XYZ
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 10
По умолчанию

Скажите, а если мне нужно найти не первое значение "12" а второе например или третье и тосле него удалить значения? что нужно сделать?
123XYZ вне форума Ответить с цитированием
Старый 30.03.2011, 12:26   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
пробовал на другом отчете - выдает ошибку: изменить часть объедененной ячейки невозсожно
сначала разъедините объединённые ячейки командой UnMerge, а потом очищайте

Цитата:
сли мне нужно найти не первое значение "12" а второе например или третье и тосле него удалить значения? что нужно сделать?
нужно написать другой макрос
EducatedFool вне форума Ответить с цитированием
Старый 30.03.2011, 14:37   #9
123XYZ
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
сначала разъедините объединённые ячейки командой UnMerge, а потом очищайте


нужно написать другой макрос
последний вопрос:

как сделать так чтобы он искал значения с учетом регистра?
123XYZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск нескольких значений zenner Microsoft Office Excel 14 27.01.2012 17:43
Поиск одинаковых значений в столбце Батарейкина Microsoft Office Excel 4 21.02.2011 20:34
Поиск на совпадение значений chandrasecar Microsoft Office Excel 1 04.07.2010 19:22
Поиск значений Rom1k06 Microsoft Office Excel 11 04.09.2008 05:14
Поиск повторяющихся значений Flangini Microsoft Office Excel 23 22.02.2008 15:57