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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2013, 22:13   #1
MainUnit.pas
Пользователь
 
Регистрация: 11.01.2013
Сообщений: 17
По умолчанию Сумма ЧИСЕЛ в строке

Доброго времени суток!
Есть задача:
Выделен кусочек текста. В выделение имеет следующий вид:
<слово> <число>, <слово> <число>. Пример: книга 100, ручка 20, ...
Хотелось бы найти сумму чисел в строке и написать её в конце, т.е.
книга 100, ручка 20
всего 120
Пытаюсь решить эту задачу, но не выходит...
Непонятно, например, как получить доступ к символу в строуке.
Сделал так:

While i <> EndOfText
Char = Mid(AllSelectionText, i, 1)
If Char >= "0" And Char <= "9" Then
...
End If
i = i + 1
Wend

Но это не комильфо... наверно есть функция вроде string(i), но найти её не получилось.
Прошу вашей помощи.
Заранее спасибо!
MainUnit.pas вне форума Ответить с цитированием
Старый 11.01.2013, 22:20   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

MainUnit.pas, выложите документ Word с примерными данными и поясните, что нужно сделать.
Скрипт вне форума Ответить с цитированием
Старый 11.01.2013, 22:29   #3
MainUnit.pas
Пользователь
 
Регистрация: 11.01.2013
Сообщений: 17
По умолчанию

Данные (до обработки):
Ручка шарикова синяя 16 шт., ручка шарикова красная 10 шт., ручка гелевая синия 8 шт.
Карандаш автоматический 5 шт., карандаш 7 шт.
...
Салфетки белые 5 шт., салфетки синиее 10 шт.

Выделяю я нужную строку и хотелось бы, чтобы стало:
Ручка шарикова синяя 16 шт., ручка шарикова красная 10 шт., ручка гелевая синия 8 шт.
ИТОГО 34 шт.
Карандаш автоматический 5 шт., карандаш 7 шт.
ИТОГО 12 шт.
...
Салфетки белые 5 шт., салфетки синиее 10 шт.
ИТОГО 15 шт.
MainUnit.pas вне форума Ответить с цитированием
Старый 12.01.2013, 08:12   #4
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

MainUnit.pas, у вас и в сообщении #1 есть описание, что вам надо. В сообщении #2 вас же попросили выложить документ Word и пояснить, что нужно сделать, а не просто попросили пояснить, что вам нужно сделать.

Последний раз редактировалось Скрипт; 12.01.2013 в 08:40.
Скрипт вне форума Ответить с цитированием
Старый 12.01.2013, 08:37   #5
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от MainUnit.pas Посмотреть сообщение
...Непонятно...найти её не получилось...
Поиздеваюсь Можно цитату из непонятого? Что читали? Книгу? Справку? Где искали, что не смогли найти?

Изучите функции Split и Val, думаю самое то.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 12.01.2013, 14:19   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Кросспостинг
http://www.cyberforum.ru/vba/thread759166.html
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 12.01.2013, 15:35   #7
MainUnit.pas
Пользователь
 
Регистрация: 11.01.2013
Сообщений: 17
По умолчанию

Казанский
К сожалению да. Править ~2000 таких записей руками - вдруг там НЕ ОТВЕТЯТ
Вождь
1. "Можно цитату из непонятого? Что читали? Книгу? Справку? Где искали, что не смогли найти?"
Источники:
Книги по VBA не сильно помогли, там рассуждений о приведении типов и алгоритмах в стиле "Алгоритмы и структуры данных" не нашёл. Кое что почерпал из
а) http://itteach.ru/vba/obrabotka-strok/vse-stranitsi
б) http://www.taurion.ru/word/34/5
2. "Изучите функции Split и Val, думаю самое то."
Согласен. Вождь, изучите функции Split и Val. Вообще не то.
Функция Split возвращает одномерный массив из элементов строки.
Предполагается, что исходная строка состоит из элементов (подстрок), разделенных специальными символами - разделителями.
Т.е. книга 100, ручка 20 перейдёт в массив из двух элементов. Первый - книга 100, второй - ручка 20. Проверьте. Сначала View - Watch window, а затем добавьте туда переменную в которую с Split возвратит значение.

Функция Val прекращает чтение строки на первом символе, который она не может распознать в качестве части числа.
Val (“ 1615 198 - qwerty“) ' вернёт 1615198
У меня в выделении не одна строка и позицию она немножко не возвращает.
MainUnit.pas вне форума Ответить с цитированием
Старый 13.01.2013, 14:55   #8
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от MainUnit.pas Посмотреть сообщение
...Split и Val. Вообще не то...
Алгоритм: Split по запятой -> получившиеся элементы массива опять Split уже по пробелу (или берем текст после первого пробела) -> Val второй элемент массива (или то, что после пробела) -> суммируем...
Цитата:
Сообщение от MainUnit.pas Посмотреть сообщение
...У меня в выделении не одна строка...
Решите хотя бы задачу с условием из первого вашего сообщения, менять и усложнять будите потом.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 14.01.2013, 15:35   #9
MainUnit.pas
Пользователь
 
Регистрация: 11.01.2013
Сообщений: 17
По умолчанию

Опередили
Мне тот же алгоритм в голову пришёл ))
Вообще говоря, Вам, большое спасибо за ответы.
Цитата:
Поиздеваюсь Можно цитату из непонятого? Что читали? Книгу? Справку? Где искали, что не смогли найти?
Может не стоит спешить "издеваться" , тогда смысл Ваших сообщений будет быстрее доходить
MainUnit.pas вне форума Ответить с цитированием
Старый 14.01.2013, 16:39   #10
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от MainUnit.pas Посмотреть сообщение
...Может не стоит...
За то, вы сразу в справку заглянули Таков уж мой характер, как у старого въедливого форумчанина
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма с несколькими критериями, подсчёт/сумма нечётных чисел XPsihopaTX Microsoft Office Excel 3 11.10.2012 15:00
Сумма чисел в строке microlab Паскаль, Turbo Pascal, PascalABC.NET 5 14.02.2012 12:49
Сумма значений в строке. Vitaliy_R Microsoft Office Excel 10 21.04.2010 11:30
Сумма чисел в строке Oleg36 Помощь студентам 1 26.12.2008 08:39
Сумма чисел gamer123 Помощь студентам 2 19.01.2008 20:42