![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 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), но найти её не получилось. Прошу вашей помощи. Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
MainUnit.pas, выложите документ Word с примерными данными и поясните, что нужно сделать.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 11.01.2013
Сообщений: 17
|
![]()
Данные (до обработки):
Ручка шарикова синяя 16 шт., ручка шарикова красная 10 шт., ручка гелевая синия 8 шт. Карандаш автоматический 5 шт., карандаш 7 шт. ... Салфетки белые 5 шт., салфетки синиее 10 шт. Выделяю я нужную строку и хотелось бы, чтобы стало: Ручка шарикова синяя 16 шт., ручка шарикова красная 10 шт., ручка гелевая синия 8 шт. ИТОГО 34 шт. Карандаш автоматический 5 шт., карандаш 7 шт. ИТОГО 12 шт. ... Салфетки белые 5 шт., салфетки синиее 10 шт. ИТОГО 15 шт. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
MainUnit.pas, у вас и в сообщении #1 есть описание, что вам надо. В сообщении #2 вас же попросили выложить документ Word и пояснить, что нужно сделать, а не просто попросили пояснить, что вам нужно сделать.
Последний раз редактировалось Скрипт; 12.01.2013 в 08:40. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Поиздеваюсь
![]() ![]() Изучите функции Split и Val, думаю самое то.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 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 У меня в выделении не одна строка и позицию она немножко не возвращает. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Алгоритм: Split по запятой -> получившиеся элементы массива опять Split уже по пробелу (или берем текст после первого пробела) -> Val второй элемент массива (или то, что после пробела) -> суммируем...
Решите хотя бы задачу с условием из первого вашего сообщения, менять и усложнять будите потом.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 11.01.2013
Сообщений: 17
|
![]()
Опередили
![]() Мне тот же алгоритм в голову пришёл ![]() Вообще говоря, Вам, большое спасибо за ответы. Цитата:
![]() |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
За то, вы сразу в справку заглянули
![]() ![]()
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма с несколькими критериями, подсчёт/сумма нечётных чисел | 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 |