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

Вход

Регистрация

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

 

= Мир MS Excel/Извлечь цифры из текста и перемножить - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечь цифры из текста и перемножить (Макросы/Sub)
Извлечь цифры из текста и перемножить
Xpert Дата: Четверг, 16.12.2021, 13:38 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Приветствую всех!
Прошу помощи гуру в решении следующей задачи.
Нужно извлечь цифры из текста, и перемножить их между собой. а далее вывести результаты на лист поячеечно.
Если стоимость дана в валюте, перевести в рубли, используя коэффициент пересчёта.
Моя идея такая: извлечь цифры, загнать их в массив, далее перемножить элементы массива и умножить на курс валюты(если цена не в рублях). а потом выкинуть результаты на лист.
Однако, забуксовал на первоначальном этапе...не могу сформировать массив, уже голову сломал. Чую, что дело в неверном задании условий цикла, но не могу подобрать верный вариант.
Пример прилагаю.
К сообщению приложен файл: 7262514.xlsm (15.8 Kb)
 
Ответить
СообщениеПриветствую всех!
Прошу помощи гуру в решении следующей задачи.
Нужно извлечь цифры из текста, и перемножить их между собой. а далее вывести результаты на лист поячеечно.
Если стоимость дана в валюте, перевести в рубли, используя коэффициент пересчёта.
Моя идея такая: извлечь цифры, загнать их в массив, далее перемножить элементы массива и умножить на курс валюты(если цена не в рублях). а потом выкинуть результаты на лист.
Однако, забуксовал на первоначальном этапе...не могу сформировать массив, уже голову сломал. Чую, что дело в неверном задании условий цикла, но не могу подобрать верный вариант.
Пример прилагаю.

Автор - Xpert
Дата добавления - 16.12.2021 в 13:38
RAN Дата: Четверг, 16.12.2021, 14:25 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал Serge_007 - Четверг, 16.12.2021, 14:27
 
Ответить
Сообщение

Автор - RAN
Дата добавления - 16.12.2021 в 14:25
Xpert Дата: Четверг, 16.12.2021, 16:47 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, спасибо, работает!
Можно попросить Вас пояснить вот эти фрагменты кода
[vba]
Код

If InStr(1, ar(i, 1), "????", 1) Then
ar(i, 2) = ar(i, 2) * [b]70[/b]
ElseIf InStr(1, ar(i, 1), "???", 1) Then
ar(i, 2) = ar(i, 2) * [b]80[/b]
End If
[/vba]
Кроме того, просьба пояснить: как улучшить код для вариантов написания цен типа 5 600(с пробелом).

Заранее благодарю!
 
Ответить
СообщениеRAN, спасибо, работает!
Можно попросить Вас пояснить вот эти фрагменты кода
[vba]
Код

If InStr(1, ar(i, 1), "????", 1) Then
ar(i, 2) = ar(i, 2) * [b]70[/b]
ElseIf InStr(1, ar(i, 1), "???", 1) Then
ar(i, 2) = ar(i, 2) * [b]80[/b]
End If
[/vba]
Кроме того, просьба пояснить: как улучшить код для вариантов написания цен типа 5 600(с пробелом).

Заранее благодарю!

Автор - Xpert
Дата добавления - 16.12.2021 в 16:47
RAN Дата: Четверг, 16.12.2021, 16:59 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
пояснить вот эти фрагменты кода

перемножить элементы массива и умножить на курс валюты(если цена не в рублях)

как вариант
[vba]
Код
Set SubMatches = .Execute(Replace(ar(i, 1), " ", ""))
[/vba]

Serge_007, поясни плз, зачем ты код под спойлер засунул?


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 16.12.2021, 17:07
 
Ответить
Сообщение
пояснить вот эти фрагменты кода

перемножить элементы массива и умножить на курс валюты(если цена не в рублях)

как вариант
[vba]
Код
Set SubMatches = .Execute(Replace(ar(i, 1), " ", ""))
[/vba]

Serge_007, поясни плз, зачем ты код под спойлер засунул?

Автор - RAN
Дата добавления - 16.12.2021 в 16:59
Serge_007 Дата: Четверг, 16.12.2021, 17:37 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
зачем ты код под спойлер засунул?
А зачем ты его вообще без тегов выложил?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
зачем ты код под спойлер засунул?
А зачем ты его вообще без тегов выложил?

Автор - Serge_007
Дата добавления - 16.12.2021 в 17:37
Alex_ST Дата: Пятница, 17.12.2021, 11:04 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
извлечь цифры, загнать их в массив
когда-то давно выкладывал UDF, извлекающую из ячеек выделенного диапазона целые числа и загоняющую их в массив,с которым потом можно работать обычными формулами листа.
посмотрите, может можно к Вашей задаче прикрутить?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
извлечь цифры, загнать их в массив
когда-то давно выкладывал UDF, извлекающую из ячеек выделенного диапазона целые числа и загоняющую их в массив,с которым потом можно работать обычными формулами листа.
посмотрите, может можно к Вашей задаче прикрутить?

Автор - Alex_ST
Дата добавления - 17.12.2021 в 11:04
Xpert Дата: Суббота, 18.12.2021, 18:41 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Alex_ST, спасибо за наводку, пригодится!
 
Ответить
СообщениеAlex_ST, спасибо за наводку, пригодится!

Автор - Xpert
Дата добавления - 18.12.2021 в 18:41
Xpert Дата: Суббота, 18.12.2021, 18:45 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Уважаемый RAN,
подскажите, пожалуйста, почему код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B" & Cells(Rows.Count).End(xlUp).Row)) Is Nothing Then Мяу
End Sub
[/vba]
работает не совсем корректно?
Дело в том, что Мяу запускается исключительно при внесении изменений в ячейку B2, при изменении любых других ячеек столбца B, ничего не происходит...
 
Ответить
СообщениеУважаемый RAN,
подскажите, пожалуйста, почему код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B" & Cells(Rows.Count).End(xlUp).Row)) Is Nothing Then Мяу
End Sub
[/vba]
работает не совсем корректно?
Дело в том, что Мяу запускается исключительно при внесении изменений в ячейку B2, при изменении любых других ячеек столбца B, ничего не происходит...

Автор - Xpert
Дата добавления - 18.12.2021 в 18:45
Kuzmich Дата: Суббота, 18.12.2021, 19:43 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код
If Not Intersect(Target, Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)) Is Nothing Then Мяу
[/vba]
 
Ответить
Сообщение[vba]
Код
If Not Intersect(Target, Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)) Is Nothing Then Мяу
[/vba]

Автор - Kuzmich
Дата добавления - 18.12.2021 в 19:43
Xpert Дата: Суббота, 18.12.2021, 19:51 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, туплю... :)
Спасибо большое.
 
Ответить
СообщениеKuzmich, туплю... :)
Спасибо большое.

Автор - Xpert
Дата добавления - 18.12.2021 в 19:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечь цифры из текста и перемножить (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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