Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 22.11.2019, 20:24   #1
ЕвгенийD
 
Регистрация: 11.06.2010
Сообщений: 5
По умолчанию Сбор данных из листов по условию на целевой лист с применением Cstr.

Здравствуйте уважаемые форумчане.
По работе потребовалось написать небольшой макрос. Сказано сделано - суть из двух и более листов собрать данный на лист отчета (количество определяется пользователем - выбирается в форме). Условие сбора данных по двум столбцам H и L ( СПП и Название КВ). Если переменные совпадают суммируем по Полям "поступило БУ" и "выбыло БУ" и записываем в отчете записываем, если еще нет такой записи пишем как новую. Написал, "прокрутился" на циклах и все собралось.
При проверке выяснилось что по первому из контрольных столбцов (H) при проверке соответствует ли значение импортируемой записи уже имеющейся на листе отчета. Выяснилось что данные не суммируются по многим записям. Пошаговой отладкой определил что при сравнении переменные совпадают (визуально), но оператор выбора перекидывает их на не равные (11091000568.000151681402). Перевел переменную в строковую через Cstr - безуспешно. Сопоставляемые выражения содержат буквы, цифры и точки. В чем причина не понятно. Спасибо.
Вложения
Тип файла: xls Вартнер.xls (300.5 Кб, 21 просмотров)
ЕвгенийD вне форума Ответить с цитированием
Старый 22.11.2019, 21:45   #2
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,256
По умолчанию

даные 1 раз приведите к одному формату, тогда их будет легко сравнивать
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.11.2019, 22:06   #3
ЕвгенийD
 
Регистрация: 11.06.2010
Сообщений: 5
По умолчанию

формат ячеек на листах? в числовой нельзя в общем формате не помогает.
ЕвгенийD вне форума Ответить с цитированием
Старый 22.11.2019, 22:28   #4
pme
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 11
По умолчанию

Привет!

в общем: разбейте сложную проверку
Код:
If CStr(TR) = (Z1) And TRE = Z2 Then
на две. Уменьшит когнитивный стресс :-)
в частности: какие конкретно две ячейки Вы считаете одинаковыми, а VBA нет?
pme вне форума Ответить с цитированием
Старый 22.11.2019, 22:42   #5
ЕвгенийD
 
Регистрация: 11.06.2010
Сообщений: 5
По умолчанию

За первый проход циклом считал данные с листа "Январь". Следующим проходом считывается "Февраль". Выборкой по столбцам "СПП-элемент" сталковаюсь с трудностью устанавливая Cstr к обоим переменным (TR) = (Z1) - не функционирует правильно.
Если просматривать взглядом проблем нет, но.
Или переписать форматы ячеек и вернуть их содержимое?
Изображения
Тип файла: jpg Безымянный.jpg (101.3 Кб, 16 просмотров)
ЕвгенийD вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбор данных с разных листов на один Сталкер18 Microsoft Office Excel 3 14.05.2015 11:24
Копирование строк из нескольких Листов по условию на Лист это же Книги Mutarix Microsoft Office Excel 1 24.11.2014 18:30
Сбор данных с листов - доработка макроса Korobkow Microsoft Office Excel 8 06.10.2014 23:58
Сбор данных из нескольких листов по нескольким заданным критериям с созданием гиперссылки Kathi Microsoft Office Excel 1 24.05.2014 06:47
Сбор данных только первых листов разных книг Dilmira Microsoft Office Excel 6 25.04.2011 17:50