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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2017, 09:17   #1
Alex_Mosia
Новичок
Джуниор
 
Регистрация: 12.04.2017
Сообщений: 2
Вопрос Ячейке со значением, вставить часть другой ячейке.

Подскажите, как сделать проверку по столбику: если значение ячейки = "woj.", то выбрать нужное значение из следующего столбика, а вместо лишнего во втором столбике поставить "ul." Использую excel 2007
Изображения
Тип файла: png пздц.PNG (6.8 Кб, 80 просмотров)
Вложения
Тип файла: xlsx elektroinstalatorstwo.xlsx (15.5 Кб, 17 просмотров)

Последний раз редактировалось Alex_Mosia; 12.04.2017 в 09:26.
Alex_Mosia вне форума Ответить с цитированием
Старый 12.04.2017, 09:45   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Alex_Mosia Посмотреть сообщение
если значение ячейки = "woj.", то выбрать нужное значение из следующего столбика
Код:
=ЕСЛИ(E2="woj.";F2;"")
Цитата:
Сообщение от Alex_Mosia Посмотреть сообщение
а вместо лишнего во втором столбике поставить "ul."
Вместо чего лишнего?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 12.04.2017, 09:46   #3
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

Код в обычном модуле
Код:
Sub macros()
    Dim arr, i As Long
    arr = Selection
    For i = 1 To UBound(arr)
        If arr(i, 1) = "woj." Then
            arr(i, 1) = Split(arr(i, 2))(0)
            arr(i, 2) = Replace(arr(i, 2), Split(arr(i, 2))(0), "ul.")
        End If
    Next i
    Range(Selection.Item(1).Address).Resize(i - 1, 2) = arr
End Sub
Выделить диапазон E2:F73 и запустить макрос
Вложения
Тип файла: rar elektroinstalatorstwo.rar (17.7 Кб, 8 просмотров)
Алексей М.
AlexM12 вне форума Ответить с цитированием
Старый 12.04.2017, 09:55   #4
Alex_Mosia
Новичок
Джуниор
 
Регистрация: 12.04.2017
Сообщений: 2
По умолчанию

Благодарю, выручили)
Alex_Mosia вне форума Ответить с цитированием
Старый 12.04.2017, 10:19   #5
китин
Пользователь
 
Регистрация: 27.03.2017
Сообщений: 12
По умолчанию

и мой вариант
Код:
Sub zamen()
 Dim z&
 z = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To z
    n_ = Left(Range("F" & i), 6)
   If Range("E" & i).Value = "woj." Then
      Range("E" & i).Value = n_
      Range("F" & i) = Replace(Range("F" & i), n_, "ul.")
     End If
   Next
End Sub
Вложения
Тип файла: xls 333111.xls (64.0 Кб, 13 просмотров)
Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Последний раз редактировалось китин; 12.04.2017 в 10:22.
китин вне форума Ответить с цитированием
Старый 12.04.2017, 11:29   #6
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

Игорь, небольшой разбор твоего варианта.
1. Переменных три, а объявлена одна.
2. Выделение первых 6 символов делается в каждой строке, а потом делается проверка нужно отделять или нет. Так что лучше эту строку поставить после If.
3. Обработка ячеек происходит медленнее, чем обработка массива.
4. При таком коде лучше отключать обновление экрана.
Алексей М.
AlexM12 вне форума Ответить с цитированием
Старый 12.04.2017, 14:36   #7
китин
Пользователь
 
Регистрация: 27.03.2017
Сообщений: 12
По умолчанию

Леша спасибо.даже и не подумал, что n_ надо объявлять. вопрос : кем ее объявить? Long?
и зачем объявлять i ?
PS. Зато я первый раз Replace применил. и получилось!!!!!
Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
китин вне форума Ответить с цитированием
Старый 12.04.2017, 14:38   #8
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

n_ As String
Алексей М.
AlexM12 вне форума Ответить с цитированием
Старый 12.04.2017, 14:46   #9
китин
Пользователь
 
Регистрация: 27.03.2017
Сообщений: 12
По умолчанию

то есть сразу объявляем n_ текстом?
Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
китин вне форума Ответить с цитированием
Старый 12.04.2017, 14:52   #10
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

Ну да, в самом начале
Dim z As Long, i As Long, n_ As String
Или типы переменных обозначаешь символами, как нравится.
Алексей М.
AlexM12 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отформатировать часть текста в ячейке eto Microsoft Office Excel 9 03.04.2016 19:33
в ячейке 1 выбрали значение, в ячейке 2 должен выводиться список для выбора Nik_123 Microsoft Office Excel 3 03.08.2015 12:58
Примечание в ячейке при изменении значения в ячейке другого листа FoxRiver Microsoft Office Excel 4 12.07.2013 08:46
Перебор строк, оставить с наибольшим значением в ячейке strannick Microsoft Office Excel 5 02.02.2013 23:08
Запрос на часть листа по условию в определенной ячейке Stilet Microsoft Office Excel 3 27.05.2010 11:42