Страницы: 1
RSS
Массовая замена сразу нескольких значений на листе.
 
На листе в ячейках есть разные значения в виде: (7) (32) (19) и т.д.    
 
Их нужно заменить такким образом, например:  
 
(1) заменить на 26  
(7) заменить на 26  
(32) заменить на 26  
(8) заменить на 26  
(19) заменить на 19  
(4) заменить на 19  
(2) заменить на 58  
(193) заменить на 104  
(16) заменить на 104  
(95) заменить на 104  
(18) заменить на 9  
(2) заменить на 9  
 
Делать это через пункт "Найти и заменить" по одному значению очень долго.    
 
Как бы это сделать макросом, чтобы в нем можно было задавать несколько "заменить что" на несколько "заменить чем"
 
"11" заменится на "2626"?
 
Нет, число 11 будет в скобках (11) и должно замениться на укзываемые данные.
 
1. А зачем заменить по одному - делайте "заменить все" - все найденные (1) заменяться на 26 и т.п.  
 
2. А есть ли смысл писать макрос, ведь в нём нужно прописать все варианты замены - не дольше ли будет? Если операция будет повторяться - запишите макрорекордером сами!  
 
3. У Вас в примере для (2) есть на 58 и на 9 - ошибка?
 
{quote}{login=VDM}{date=22.03.2011 10:36}{thema=}{post}}У Вас в примере для (2) есть на 58 и на 9 - ошибка?{/post}{/quote}  
Да, это я ошиблась. Такого (повторяющихся значений) не будет.
 
{quote}{login=VDM}{date=22.03.2011 10:36}{thema=}{post}2. А есть ли смысл писать макрос, ведь в нём нужно прописать все варианты замены - не дольше ли будет? Если операция будет повторяться - запишите макрорекордером сами!{/post}{/quote}  
Эти варианты замены нужно будет делать каждый день, поэтому мне и нужен макрос, чтобы прописать в нем один раз и навсегда.
 
The_Prist, я же в первом сообщении написала свой пример. И спасибо за ваш вариант.
 
Sub zamena()  
Dim cell  
Dim rv As Range  
Set rv = Range("A2:B100") 'таблица соотвествий  
On Error Resume Next  
For Each cell In Selection 'перед началом выполнения выделить нужный диапазон  
If Not IsEmpty(cell) Then  
cell.Value = Application.WorksheetFunction.VLookup(cell.Value, rv, 2, 0)  
End If  
Next  
End Sub
 
The_Prist'у нужно было создать файл, вбить данные... А что - пускай работают и помогают, а мы сливки снимать...
 
Я поняла, спасибо. Учту на будущее.
 
Скажите пожалуйста, а кто это мне так помогает, а его имени не видно?    
 
Его сообщение в этой теме перед сообщением vikttur.
 
Это наш секретный сотрудник. Его никто не должен знать.
 
Отдельное ему БОЛЬШОЕ спасибо)
 
Пожалуйста, объясните для чайника.  
Есть страница экселя и с разными значениями в ячейках. Надо массово найти(по одному очень долго) и заменить, например значение 325 на 111, 258 на 222, 986 на 333 и тд. Одинаковых значений может быть несколько. Или просто массово найти все значения типа 325, 258, 986 и окрасить их ячейки в какой либо цвет, без замены самих значений.  
Спасибо.
 
Вы плохо читали тему ....с Вас файл.
 
{quote}{login=}{date=22.03.2011 11:22}{thema=}{post}Sub zamena()  
........................................  
cell.Value = Application.WorksheetFunction.VLookup(cell.Value, rv, 2, 0)  
........................................  
End Sub{/post}{/quote}  
создаётся впечатление, что вто это строка - cell.Value = Application.WorksheetFunction.VLookup(cell.Value, rv, 2, 0) - заменит данные которых нету в A2:B100 на #Н/Д, но при работе макроса всё нормально.  
в чём дело?  
может я должен прочитать про VALUE?  
(шась я понимаю макрос так что если он найдёт нужные для замены данные то нормально заменит их а если в в выделенном диапазоне будут данные которых нету в A2:B100 то они заменятся на #Н/Д ведь при формуле ВПР так и случится)
 
{quote}{login=Микки}{date=16.02.2012 10:59}{thema=}{post}Вы плохо читали тему ....с Вас файл.{/post}{/quote}  
С меня?
 
GabrielZ, помощи хотите? Или так, поговорить?
 
Нет, не напрягайтесь - за Вас сейчас кто-нибудь нарисует. :-)
 
START, я думаю, что в случае "не найдёт" будет ошибка, а на этот случай есть On Error Resume Next
 
в точку  
 
не обратил внимания на On Error Resume Next  
попробовал без него макрос ругается когда  в выделенном диапазоне есть данные которые отсутствуют на a2:b100  
 
спасибо
 
{quote}{login=vikttur}{date=16.02.2012 03:11}{thema=}{post}GabrielZ, помощи хотите? Или так, поговорить?{/post}{/quote}  
Конечно хочу помощи!
 
Да ни черта вы не хотите. <BR>Те, кто заинтересован в помощи (не халявной), прилагают к этому все усилия - объясняют, уточняют, показывают свою проблему в <STRONG>файле</STRONG>. От Вас же кроме "Есть страница экселя и с разными значениями в ячейках"... Где есть?!
 
Прошу прощения за недопонимание.  
в приложении файл.  
в графе B находятся разные значения. Необходимо натйти все значения к примеру 7781178866, 11178798, 16671877 и чтоб ячейки с ними окрасились в какой нибудь цвет, значения при этом можно не менять.    
Или если можно дополнить. Например нашлось значение в графе B8, B26 и B34.(в нашем примере это 159357)В этом случае надо сделать так что бы значения в яцейках C8, C26, C34 (в нашем примере это 0,0146 , 0,0245 и 0,0115 соответственно)просуммировать эти значения, и сумму выдать где нибудь в конце листа.  
Спасибо.
 
Вариант для "и сумму выдать где-нибудь" - сводная. Прочие вопросы о преобразовании данных и пр.пр. - в "Приемах" и "Поиске"... ;) -99875-
 
Может быть это нужно?  
 http://www.planetaexcel.ru/forum.php?thread_id=26105
 
не, там он хочут выносить все на отдельный лист, а мне надо чтоб на этом же. присоединил образец.
 
Расскажите и мне как сделать массовую замену. У меня есть массив (1 столбец), есть ещё один (два столбца), где каждому значению первого соответствует определенное значение во втором. Как сравнить два первых столбца и в первом массиве проставить соответствующие значения из второго массива.
Страницы: 1
Читают тему
Loading...