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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 20:42   #1
Smile2007
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 24
Вопрос Как найти все N-значения и заменить их на значения из 2-х ячеек?

Мне нужно найти все буквы К и заменить их на другое значение, но это значение состоит из двух ячеек, вот пример:



Как это сделать?
Smile2007 вне форума Ответить с цитированием
Старый 08.12.2010, 21:15   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Можно же объединить значения в одну ячейку с помощью формул. Или в макросе использовать конкатенацию &
motorway вне форума Ответить с цитированием
Старый 08.12.2010, 21:20   #3
Smile2007
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Можно же объединить значения в одну ячейку с помощью формул. Или в макросе использовать конкатенацию &
Мне как раз не нужно объединять ячейки, а нужно например Найти все «111» и заменить все эти значения на значение которое состоит из 2-х ячеек.
Smile2007 вне форума Ответить с цитированием
Старый 08.12.2010, 21:23   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Тогда используйте конкатенацию Cells(i,j).Value &Cells(i,j+1).Value
motorway вне форума Ответить с цитированием
Старый 08.12.2010, 21:36   #5
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Почему К в 28-й строке отличается от остальных К?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 08.12.2010, 21:44   #6
Smile2007
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Тогда используйте конкатенацию Cells(i,j).Value &Cells(i,j+1).Value
Я была бы тебе очень благодарна, если бы ты мне подробнее объяснил и на примере показал. Если можешь объясни пожалуйста.
Smile2007 вне форума Ответить с цитированием
Старый 08.12.2010, 21:48   #7
Smile2007
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge 007 Посмотреть сообщение
Почему К в 28-й строке отличается от остальных К?
ошиблась, должно быть AAA1
Smile2007 вне форума Ответить с цитированием
Старый 08.12.2010, 22:39   #8
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
Радость

Предположим, что в диапазоне A1:F6 расположены числа 11. В ячейке H1 число 1, I1 - 2. Мы хотим заменить все эти числа на 12, то есть, слияние H1 и I1.
Это делается так (код вызывается при смене ячейки):
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 1 To 6
For j = 1 To 6
' вот тут с помощью & объединяются значения в ячейках
Cells(i, j).Value = Replace(Cells(i, j).Value, 11, [h1] & [i1])

Next

Next

End Sub
motorway вне форума Ответить с цитированием
Старый 09.12.2010, 07:28   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Рациональнее делать через массивы (ибо быстрее), либо организовывать цикл только по требуемым ячейкам. Например, так:
Код:
Sub Main()
    Dim x As Range: Application.ScreenUpdating = False
    [A:E].AutoFilter Field:=1, Criteria1:="K"
    With ActiveSheet.AutoFilter.Range.Columns(1)
    For Each x In .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlVisible)
        x = x.Offset(, 3) & x.Offset(, 4)
    Next: [A:E].AutoFilter: End With
End Sub
Пример во вложении.Откройте файл и запустите макрос "Main".
Вложения
Тип файла: rar Книга1.rar (6.6 Кб, 14 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 09.12.2010 в 08:14.
SAS888 вне форума Ответить с цитированием
Старый 09.12.2010, 09:10   #10
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

В примере "B" соответствуют и "Z", и "S". Тоже ошибка?
Вложения
Тип файла: rar 111.rar (2.1 Кб, 10 просмотров)
vikttur вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить все значения Items в ListBox? quarty Общие вопросы Delphi 4 05.05.2020 21:49
Как проще изменить значения ячеек в блоке ? getikalex Microsoft Office Excel 4 22.08.2010 15:49
как разделить значения ячеек по формату ячеек? ARIRAN Microsoft Office Excel 6 11.12.2009 15:30
Как из колонки DBGrid записать все значения в combobox dolunin БД в Delphi 1 16.03.2009 19:19
Как подсчитать все значения в колоне aesoem БД в Delphi 5 03.07.2008 15:50