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

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

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

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

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

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

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

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

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

Привет!

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

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбор данных с разных листов на один Сталкер18 Microsoft Office Excel 3 14.05.2015 10:24
Копирование строк из нескольких Листов по условию на Лист это же Книги Mutarix Microsoft Office Excel 1 24.11.2014 17: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