Страницы: 1
RSS
Выгрузка текстовых значений (числа как текст, ведущие нули) из массива в макросе на Лист
 
Здравствуйте!
У меня вопрос выгрузки текстовых значений (числа как текст, ведущие нули) из массива в макросе в ячейки.
Не люблю использовать массивы в коде VBA, так как летит форматирование к черту...
И чтобы все данные без потери их значимости были выгружены из массива, надо шаманить с форматами.
Если таблицы огромные и столбцов под сотню, вообще грустно.
Подскажите как избежать ручного форматирования исходных данных в текстовый или перевод форматирования данных в текстовый в коде (это долго, да и пропустить можно, а значит "повтори сначала").
Изменено: Ma_Ri - 06.08.2024 15:55:24
 
Ставьте в коде каждому такому значению впереди апостроф '
 
Hugo, Это Вы считаете неручное форматирование, вот этого и иже с ним я как бы и хотела избежать
 
Цитата
Ma_Ri написал:
Это Вы считаете неручное форматирование
- да.
Вы ведь писали
Цитата
Ma_Ri написал:
как избежать ручного форматирования
 
Hugo, Мы опять с Вами говорим на разных языках...мы это уже проходили с Вами...
Я написала
Цитата
Ma_Ri, написал:
как избежать ручного форматирования исходных данных в текстовый или перевод форматирования данных в текстовый в коде
Чтобы в коде это применить мне надо все данные в столбцах проанализировать, выписать и т.д.
Цитата
Ma_Ri,  написал:
это долго, да и пропустить можно, а значит "повтори сначала"
 
Где я сказал что нужно лезть в массив и ставить апострофы руками?
Я даже не знаю как это сделать технически ))
Пишите один цикл, или добавляете в тот код который уже что-то с этим массивом делает
Цитата
Ma_Ri написал:
выгрузки текстовых значений (числа как текст, ведущие нули) из массива в макросе в ячейки.
- вижу код, массив, значит просто дописать функционал сохранения этих нулей.
 
Цитата
Ma_Ri написал:
Не люблю использовать массивы в коде VBA, так как летит форматирование к черту...
Excel, все таки, в первую очередь Табличный редактор, а не Текстовый процессор. Да, форматирование и прочая 'красота' (объединенные ячейки, стили, УФ), как правило, враг быстрой и удобной работы с данными. Тут надо определяться - 'шашечки' или ехать
Скорость работы с данными в массиве кратно (а то и на ПОРЯДКИ) быстрее такой же работы с диапазонами, со всем их форматированием.
ИМХО, как говориться)
Согласие есть продукт при полном непротивлении сторон
 
Hugo, как я их буду выбирать эти столбцы, их допустим будет 70 из 100 (представьте себе, что я не знаю в каких столбцах будут эти числа как текст )?
 
Вместо апострофов - Функция Format
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Ma_Ri написал:
представьте себе, что я не знаю в каких столбцах будут эти числа как текст
- на практике такого не бывает, всегда это заранее известно.
Ну или если юзер непредсказуем в поведении - можно поискать по заголовкам где лежат всякие SKU, артикулы, ID, штрихкоды...
 
Hugo, давайте не будем спешить с такими выводами...
Цитата
Hugo, написал:
Ну или если юзер непредсказуем в поведении...
Да, есть таблица и видно сколько столбцов и возможно проанализировать с какими данными мы будем работать, но вопрос то не в этом.
Как минимизировать этот процесс и избавить от ручного выбора и определения форматирования.  
 
Похоже зашли в тупик...
Цитата
Hugo, написал:
можно поискать по заголовкам где лежат всякие SKU, артикулы, ID, штрихкоды...
Это тоже не вариант, так как могут отправить файлы с разной выгрузкой (столбцы с данными расположены в разных файлах по-разному, количество столбцов разное...). Возможный вариант, например, берем первую строку с данными и проверяем, какой тип данных в каждом столбце и устанавливаем соответствующий формат на весь столбец с данными (если число - числовой, текст - текстовый). Так возможно сделать в коде VBA?
Или смотреть в сторону PQ?
 
Цитата
Ma_Ri написал:
Так возможно сделать в коде VBA?Или смотреть в сторону PQ?
Файл-пример приложите. Как надо - Как не надо )
Согласие есть продукт при полном непротивлении сторон
 
Здравствуйте!
Sanja,  ;)
Нашла функцию TypeName для определения типа данных.И вроде бы получилось по задуманному варианту применить.
Проверяю тип данных в источнике и такой же устанавливаю на новом Листе.
Частично получилось  решить задачу, ведущие нули на месте и числа как текст в порядке, кроме числового формата.
Так как она видит число в ячейке, определяет его тип как "Double" и для целого и десятичного числа.
Я могу соответственно задать формат либо "0" либо "#,##0.00", разные форматы (для целого и десятичного числа) не получится.
Возможно и другие неприятности могут возникнуть, но пока вот так...
И как с этим быть? Возможно есть и другие варианты? Ваше мнение..?
Примерный код тестовый приложила, сделала специально форматирование отдельным кодом.
UPD: Можно в принципе оставить формат общий для чисел и не заморачиваться с форматированием (

Скрытый текст
Изменено: Ma_Ri - 07.08.2024 15:16:02
 
Цитата
Ma_Ri написал:
И как с этим быть?
Приложить небольшой файл-пример - тогда и сообразим, как улучшить всё это!
 
Мистер Экселистор, здравствуйте!
По вашей просьбе, лично для Вас составила несколько строк для тестирования...
Изменено: Ma_Ri - 07.08.2024 18:08:27
Страницы: 1
Читают тему
Наверх