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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2010, 22:40   #1
Lived08
 
Регистрация: 23.05.2010
Сообщений: 7
По умолчанию Замена текста

Доброго времени суток!

Подскажите как можно и можно ли сделать так чтоб в ячейке после ввода данных (пример : 2-2-2 или 2 2 2) в ней появлялось значение (пример : 2 начало 2 середина 2 конец, здесь начало,середина,конец константы) или хотя бы в другой ячейке

ЗЫ спасибо за помощь !
Lived08 вне форума Ответить с цитированием
Старый 21.07.2010, 22:46   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

да, можно ...
EugeneS вне форума Ответить с цитированием
Старый 21.07.2010, 22:50   #3
Lived08
 
Регистрация: 23.05.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
да, можно ...
а примерчик можно буду очень благодарен
Lived08 вне форума Ответить с цитированием
Старый 21.07.2010, 23:13   #4
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

уточните, пожалуйста, вводим в ячейку:
2 2 2 или 2-2-2
получаем
222
все верно?
EugeneS вне форума Ответить с цитированием
Старый 21.07.2010, 23:17   #5
Lived08
 
Регистрация: 23.05.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
уточните, пожалуйста, вводим в ячейку:
2 2 2 или 2-2-2
получаем
222
все верно?
нет нужно получить из (2 2 2) к примеру (2 улица 2 дом 2 квартира) где улица,дом,квартира - это постоянные значения
Lived08 вне форума Ответить с цитированием
Старый 21.07.2010, 23:21   #6
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Цитата:
Сообщение от Lived08 Посмотреть сообщение
нет нужно получить из (2 2 2) к примеру (2 улица 2 дом 2 квартира) где улица,дом,квартира - это постоянные значения
какое решение Вам необходимо: формулами Эксель или макросами (для большого количества данных)
EugeneS вне форума Ответить с цитированием
Старый 21.07.2010, 23:23   #7
Lived08
 
Регистрация: 23.05.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
какое решение Вам необходимо: формулами Эксель или макросами (для большого количества данных)
без разницы главное чтоб работали не откажусь от двух вариантов чтоб больше не беспокоить этим вопросом
Lived08 вне форума Ответить с цитированием
Старый 21.07.2010, 23:46   #8
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

правой кнопкой по ярлыку листа - Исходный текст, туда вставишь это:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim i As Integer, s1 As Integer, s2 As Integer
   Dim n1 As String, n2 As String, n3 As String
   
   On Error Resume Next
   
   For i = 1 To Len(Target)
      If s1 > 0 And Mid(Target, i, 1) = " " Then s2 = i: Exit For
      If s1 = 0 And Mid(Target, i, 1) = " " Then s1 = i
   Next i

   n1 = Left(Target, s1 - 1)
   n2 = Mid(Target, s1 + 1, s2 - s1 - 1)
   n3 = Right(Target, Len(Target) - s2)
   
   If Err > 0 Then Exit Sub
   
   Application.EnableEvents = False
   Target = n1 & " улица, " & n2 & " дом, " & n3 & " квартира"
   Application.EnableEvents = True
End Sub
никаких проверок нет, рассчитано на эту конкретику
как-то кривенько выглядит, но так...
аналитика вне форума Ответить с цитированием
Старый 22.07.2010, 00:29   #9
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Цитата:
Сообщение от Lived08 Посмотреть сообщение
без разницы главное чтоб работали не откажусь от двух вариантов чтоб больше не беспокоить этим вопросом
Код макроса:

Код:
Sub main()
Dim i As Long: i = 1: For Each x In Range([a1], Cells(ActiveSheet.UsedRange.Rows.Count, 1))
a = Split(x, " "): Cells(i, 2) = a(0) & " улица " & a(1) & " дом " & a(2) & " квартира ": i = i + 1
Next: End Sub
Данные для обработки располагаются в столбце "А". На сайте сейчас тех. неполадки, поэтому файл с макросом выложить не могу. Начнет работать - выложу
Вложения
Тип файла: zip SHF.zip (9.7 Кб, 15 просмотров)

Последний раз редактировалось EugeneS; 22.07.2010 в 00:52.
EugeneS вне форума Ответить с цитированием
Старый 22.07.2010, 00:50   #10
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

строго Split, вылетело из головы
ай-яй-яй
аналитика вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена текста Jantar Общие вопросы Delphi 10 26.07.2010 08:26
замена текста в Edit designer999 Общие вопросы Delphi 3 17.04.2010 15:19
замена текста designer999 Общие вопросы Delphi 5 23.03.2010 17:31
Замена текста в DBGride INCIC БД в Delphi 21 01.07.2009 12:19
замена текста zetrix Microsoft Office Excel 0 31.10.2006 07:54