Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск цифровых значений с копированием их в другую ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Поиск цифровых значений с копированием их в другую ячейку
Леха1982 Дата: Пятница, 08.02.2013, 17:30 | Сообщение № 1
Группа: Гости
Доброго времени суток!
Подскажите пожалуйста, необходим макрос, который искал бы в строках (их более 1 млн) цифровые значения (например, 30000 руб, 30000 руб.,зарплата 30 т.р.,30 тыс руб,30000 рублей,зарплата 30 тыс.руб.+ пенсия 5000 рублей
) и копировал только цифровые значения в соседнюю ячейку. Я макросам только начинаю учиться, поэтому даже представить не могу с чего начать.
Буду очень благодарен за помощь
 
Ответить
СообщениеДоброго времени суток!
Подскажите пожалуйста, необходим макрос, который искал бы в строках (их более 1 млн) цифровые значения (например, 30000 руб, 30000 руб.,зарплата 30 т.р.,30 тыс руб,30000 рублей,зарплата 30 тыс.руб.+ пенсия 5000 рублей
) и копировал только цифровые значения в соседнюю ячейку. Я макросам только начинаю учиться, поэтому даже представить не могу с чего начать.
Буду очень благодарен за помощь

Автор - Леха1982
Дата добавления - 08.02.2013 в 17:30
Michael_S Дата: Пятница, 08.02.2013, 17:36 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Леха1982, рисуйте свой файл-пример: какие строки, какие числа, где находятся, куда выложить... тогда можно на что-то рассчитывать.
 
Ответить
СообщениеЛеха1982, рисуйте свой файл-пример: какие строки, какие числа, где находятся, куда выложить... тогда можно на что-то рассчитывать.

Автор - Michael_S
Дата добавления - 08.02.2013 в 17:36
Леха1982 Дата: Пятница, 08.02.2013, 18:14 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

выкладываю пример
то есть макрос должен искать в столбце А цифровое значение, и копирует его(только цифровое значение) в столбец В

спасибо
К сообщению приложен файл: 3148652.xlsx (7.7 Kb)
 
Ответить
Сообщениевыкладываю пример
то есть макрос должен искать в столбце А цифровое значение, и копирует его(только цифровое значение) в столбец В

спасибо

Автор - Леха1982
Дата добавления - 08.02.2013 в 18:14
AlexM Дата: Пятница, 08.02.2013, 18:40 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
А что делать с ячейкой А7?
В В7 должно быть 35000?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеА что делать с ячейкой А7?
В В7 должно быть 35000?

Автор - AlexM
Дата добавления - 08.02.2013 в 18:40
Леха1982 Дата: Пятница, 08.02.2013, 18:55 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

35000 это самый лучший вариант, но устроит и разбить на 2 суммы в разные ячейки
 
Ответить
Сообщение35000 это самый лучший вариант, но устроит и разбить на 2 суммы в разные ячейки

Автор - Леха1982
Дата добавления - 08.02.2013 в 18:55
AlexM Дата: Пятница, 08.02.2013, 20:45 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Решение макросом с использованием регулярных выражений.
[vba]
Код
Sub Macros()
Dim Arr
  Set myRange = Worksheets(1).Range("A1").CurrentRegion
  Arr = myRange.Value
  For i = 2 To UBound(Arr)
     stroka = Replace(Arr(i, 1), " т.р", "000")
     stroka = Replace(stroka, " тыс.руб", "000")
     stroka = Replace(stroka, " тыс руб", "000")
     stroka = Replace(stroka, " рублей", "")
     stroka = Replace(stroka, " руб", "")
     Set objRegExp = CreateObject("VBScript.RegExp")
     objRegExp.Pattern = "[^0-9,+]+"
     While objRegExp.Test(stroka)
         stroka = objRegExp.Replace(stroka, "")
     Wend
     Arr(i, 2) = Evaluate(stroka)
  Next i
Worksheets(1).Range("A1").Resize(i - 1, 2) = Arr
End Sub
[/vba]
К сообщению приложен файл: 3148652_new.xls (33.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеРешение макросом с использованием регулярных выражений.
[vba]
Код
Sub Macros()
Dim Arr
  Set myRange = Worksheets(1).Range("A1").CurrentRegion
  Arr = myRange.Value
  For i = 2 To UBound(Arr)
     stroka = Replace(Arr(i, 1), " т.р", "000")
     stroka = Replace(stroka, " тыс.руб", "000")
     stroka = Replace(stroka, " тыс руб", "000")
     stroka = Replace(stroka, " рублей", "")
     stroka = Replace(stroka, " руб", "")
     Set objRegExp = CreateObject("VBScript.RegExp")
     objRegExp.Pattern = "[^0-9,+]+"
     While objRegExp.Test(stroka)
         stroka = objRegExp.Replace(stroka, "")
     Wend
     Arr(i, 2) = Evaluate(stroka)
  Next i
Worksheets(1).Range("A1").Resize(i - 1, 2) = Arr
End Sub
[/vba]

Автор - AlexM
Дата добавления - 08.02.2013 в 20:45
Леха1982 Дата: Пятница, 08.02.2013, 21:10 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

спасибо огромное, завтра проверю и адаптирую в случае чего
 
Ответить
Сообщениеспасибо огромное, завтра проверю и адаптирую в случае чего

Автор - Леха1982
Дата добавления - 08.02.2013 в 21:10
AlexM Дата: Пятница, 08.02.2013, 21:16 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Поменяйте строку
[vba]
Код
Arr(i, 2) = Evaluate(stroka)
[/vba]
на строку
[vba]
Код
If stroka <> "" Then Arr(i, 2) = Evaluate(stroka)
[/vba]
Это нужно для того, чтобы не выводило #ЗНАЧ, в случае отсутствия цифр в текстовой строке.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПоменяйте строку
[vba]
Код
Arr(i, 2) = Evaluate(stroka)
[/vba]
на строку
[vba]
Код
If stroka <> "" Then Arr(i, 2) = Evaluate(stroka)
[/vba]
Это нужно для того, чтобы не выводило #ЗНАЧ, в случае отсутствия цифр в текстовой строке.

Автор - AlexM
Дата добавления - 08.02.2013 в 21:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!