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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2019, 16:51   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от НеВа6464 Посмотреть сообщение
Это данные всего лишь названы артикулами. Но они состоят только из цифр и представляют из себя именно число в ячейке, которое отформатировано Экселем как шестизначное. Их можно складывать, вычитать и даже брать кубические корни, как с любым числом.
присоединяюсь к вопросу Hugo121 - зачем с артикулами (или числовыми идентификаторами, которые Вы называете артикулами) производить арифметические действия?

что, если взять артикул молока и разделить его на десять, получите артикул воды? Нет? Тогда зачем?

и вообще, как раз в этом и заключена ваша проблема - с одной стороны у нас некий идентификатор - ключ, который может быть и буквенным, в общем случае, но, чисто случайно, в вашем случае это шестизначное цифровое значение. причём именно ШЕСТИ. поэтому важную характеристику имеют нули в начале. Поэтому 0001 не равно 000001 (потому 0001 вообще недопустимо).
а с другой стороны, Вы хотите их складывать, вычитать, делить.

впрочем, даже это странное желание в Excel решается - храните числа как числа и отображайте их так, как Вам нужно через заданный формат.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2019, 20:18   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я встречал такой странный документ, где например в ячейках лежат числа 1 (даже наверное именно число, не помню точно), но это пяток РАЗНЫХ артикулов, т.к. РАЗНЫМ форматом именно ячеек отображается то как 0001, то 000001, то 00-00-01, и количество символов тоже совершенно неопределённое, как попало всё короче...
ТО, что это разные артикулы - свидетельствует разное название товара...
Что это генерило - не помню, может 1С
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.11.2019, 01:31   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

знаете, народная мудрость утверждает, что забивать шурупы гораздо удобнее, чем завинчивать гвозди!
понимаете, для любой задачи нужно брать подходящий инструмент, чтобы не удивляться потом почему сапог не налезает на голову
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.11.2019, 19:26   #14
НеВа6464
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 64
По умолчанию

Друзья мои!
Всем спасибо за ответы. В любом из них можно найти полезное зерно для будущих задач.
Однако, я так и не получил ответа на изначальный вопрос.
Я знаю несколько способов как решить возникшую проблему. В том числе и представляя артикул в виде текста. Хотя я предпочитаю держать артикул в числе. Уже хотя бы потому что его проще вводить как число, чем как текст. Вводишь число 343, а получаешь в ячейке артикул 000343. Т.е. не надо вбивать эти лидирующие нули. И быстрее, и исключается человеческая ошибка в количестве нулей.
А изначальный вопрос был:
Цитата:
Можно ли задавать числовой переменной VBA тот или иной формат числа?
Вопрос, теперь, носит чисто справочный характер. :-)
НеВа6464 вне форума Ответить с цитированием
Старый 25.11.2019, 00:02   #15
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вводите в ячейку 343, видите 000343 (а в ячейке-то в это время находится число 343)
запускаете поиск Ctrl+F, пишете найти 000343, а Excel Пишет ничего не найдено! и тут чешете репу и удивляетесь как же не найдено, если вот же его видно!!!

и отвечая на вопрос, в VBA вы можете:
1. конвертировать числовую переменную с одного типа в другой
2. получить из числовой переменной строку условно "любого" формата, важно при этом помнить что это уже не ЧИСЛОВАЯ переменная, а переменная СТРОКОВОГО типа
в каком виде хранится число зависит от типа числа, нет у чисел ни каких форматов, есть тип и все
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.11.2019, 00:33   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от НеВа6464 Посмотреть сообщение
Вводишь число 343, а получаешь в ячейке артикул 000343
- если есть желание получить в переменной именно это 000343 - берите в переменную не value ячейки, а text. Только нужно обеспечить чтоб в ячейке было видно именно то, что нужно получить в переменной! Это я про вариант типа ##########
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.11.2019, 09:30   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
если есть желание получить в переменной именно это 000343 - берите в переменную не value ячейки, а text.
и это уже будет переменная СТРОКОВОГО типа, а не числовая
о чём и идёт речь.


Цитата:
Сообщение от НеВа6464 Посмотреть сообщение
Можно ли задавать числовой переменной VBA тот или иной формат числа?
Ответ же сразу прозвучал - НЕТ, НЕЛЬЗЯ!

Поймите, формат числа (и в VBA и в других ЯВУ) можно задавать только при ВЫВОДЕ переменной. Задать, как значение переменной отображать/печатать.
Внутри переменная хранится в числовом виде (кстати, разные типы хранятся по разному) и никакой формат для числа задать нельзя.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с типом данных JIexa0 Общие вопросы C/C++ 7 22.03.2018 13:52
Макрос для переноса (с удалением) данных с одного листа на другой при появлении дополнительных данных в ячейке - MS Excel Тохес Microsoft Office Excel 2 15.03.2016 22:26
Проблема с типом данных!!!!! Екатерина_21 C++ Builder 1 02.02.2012 02:19
Проблема с типом данных BMWSauber Общие вопросы .NET 1 12.10.2010 13:42
Макрос в эксел или PHP обработчик данных для формата .xls panashka Microsoft Office Excel 2 02.11.2009 15:56