Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Инициализация списка именованого диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Инициализация списка именованого диапазона (Макросы/Sub)
Инициализация списка именованого диапазона
Olena Дата: Среда, 15.03.2023, 18:02 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 1 ±
Замечаний: 20% ±

Доброго времени. Подскажите почему так происходит.
Иногда при инициализации списка все проходит корректно т.е. числовые значения отображаются через запятую " 31,2 " , а иногда что чаще бывает через точку " 31.2 " что в свою очередь не совсем верно для меня.
Что пробовала, писала и англ., и русскими символами, зависимости не увидела. До недавнего времени вроде работало все корректно.
Данные разношерстные в примере приложила. Форматы пробовала от числового до общего, ничего не меняется.
Свойства .text выпадает в ошибку. Куда обратить внимание?
Всем спасибо)
К сообщению приложен файл: test_kopija.xls (61.0 Kb)
 
Ответить
СообщениеДоброго времени. Подскажите почему так происходит.
Иногда при инициализации списка все проходит корректно т.е. числовые значения отображаются через запятую " 31,2 " , а иногда что чаще бывает через точку " 31.2 " что в свою очередь не совсем верно для меня.
Что пробовала, писала и англ., и русскими символами, зависимости не увидела. До недавнего времени вроде работало все корректно.
Данные разношерстные в примере приложила. Форматы пробовала от числового до общего, ничего не меняется.
Свойства .text выпадает в ошибку. Куда обратить внимание?
Всем спасибо)

Автор - Olena
Дата добавления - 15.03.2023 в 18:02
i691198 Дата: Среда, 15.03.2023, 22:01 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 217
Репутация: 85 ±
Замечаний: 0% ±

Никакой ошибки нет, так и должно быть. У вас часть значений ячеек (с разделительным слешем) эксель воспринимает как текст, а остальные как числа. При инициализации комбобокса значения преобразуются в формат VBA, т.е. текстовые значения не изменяются, а у числовых разделитель дробной части заменяется на точку. Это не должно беспокоить, при копировании такого значения из комбобокса в ячейку листа точка будет обратно заменена на запятую. Если вам нужно, чтобы в списке значения отображались так же, как на листе, то они должны быть текстовыми.
Перед заполнением диапазона значениями установите для него текстовый формат, или перед числовыми значениями поставьте апострофы.
 
Ответить
СообщениеНикакой ошибки нет, так и должно быть. У вас часть значений ячеек (с разделительным слешем) эксель воспринимает как текст, а остальные как числа. При инициализации комбобокса значения преобразуются в формат VBA, т.е. текстовые значения не изменяются, а у числовых разделитель дробной части заменяется на точку. Это не должно беспокоить, при копировании такого значения из комбобокса в ячейку листа точка будет обратно заменена на запятую. Если вам нужно, чтобы в списке значения отображались так же, как на листе, то они должны быть текстовыми.
Перед заполнением диапазона значениями установите для него текстовый формат, или перед числовыми значениями поставьте апострофы.

Автор - i691198
Дата добавления - 15.03.2023 в 22:01
Olena Дата: Среда, 15.03.2023, 23:32 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 1 ±
Замечаний: 20% ±

Это не должно беспокоить, при копировании такого значения из комбобокса в ячейку листа точка будет обратно заменена на запятую.

в том то и проблема, копирует с точкой. Сейчас использую с помощью replace, но пока не уловила как будет если снова инициализируется с запятой.
Перед заполнением диапазона значениями установите для него текстовый формат

Форматы тоже пробовала, но этоя о формате ячеек. попробую формат записи присвоить текст.
перед числовыми значениями поставьте апострофы.

это не подходит так как мне при выборке нужно суммировать, а при апострофе не корректно происходит эта процедура (ошибка) на этом же форуме мне помогали ребята избавиться от апострофа)
Я Вам благодарна за подсказки. Завтра опробую форматы)
 
Ответить
Сообщение
Это не должно беспокоить, при копировании такого значения из комбобокса в ячейку листа точка будет обратно заменена на запятую.

в том то и проблема, копирует с точкой. Сейчас использую с помощью replace, но пока не уловила как будет если снова инициализируется с запятой.
Перед заполнением диапазона значениями установите для него текстовый формат

Форматы тоже пробовала, но этоя о формате ячеек. попробую формат записи присвоить текст.
перед числовыми значениями поставьте апострофы.

это не подходит так как мне при выборке нужно суммировать, а при апострофе не корректно происходит эта процедура (ошибка) на этом же форуме мне помогали ребята избавиться от апострофа)
Я Вам благодарна за подсказки. Завтра опробую форматы)

Автор - Olena
Дата добавления - 15.03.2023 в 23:32
Alex_ST Дата: Вторник, 28.03.2023, 15:11 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Olena,
заинтересовал Ваш необычный случай.
Выяснил, что для того, чтобы в комбобоксе отображались правильные значения из именованного диапазона, нужно чтобы все значения в нём имели текстовой формат.
Но не достаточно просто изменить формат ячеек. Необходимо после этого войти дабл-кликом в каждую ячейку. Только после этого форматы будут приняты.
Так часто происходит при экспорте данных из баз данных - формулы не хотят работать если в таблице БД, чтобы не заморачиваться с ограничениями на значение был задан формат данных "текстовой".
Для борьбы с этим у меня уже давно лежит в Personal макрос, который правит формат выделенных ячеек:

Попробовал изменить формат данных Вашего диапазона на текстовой и применить свой макрос. Всё заработало!
К стати, для того, чтобы изменения были наглядными, в соседних столбцах с диапазоном прописал формулы =ЕЧИСЛО и =ЕТЕКСТ, а для удобства добавил кнопки вызова макросов форматирования и исправления формата данных.
Сразу стало видно, что изначально у Вас при общем формате ячеек часть данных была числами, часть - текстом.
После простого форматирования в текст форматы к значениям в ячейках не применяются и в комбобоксе остаются точки, а после применения макроса всё становится нормально.
Почему так происходит, не могу понять. Но пользоваться таким "костылём" вполне можно, тем более, что макрос Repair_Value написан со всеми возможными ускорителями и даже большие массивы обрабатывает достаточно шустро.
К сообщению приложен файл: test_kopija_4olena.xls (74.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 28.03.2023, 21:17
 
Ответить
СообщениеOlena,
заинтересовал Ваш необычный случай.
Выяснил, что для того, чтобы в комбобоксе отображались правильные значения из именованного диапазона, нужно чтобы все значения в нём имели текстовой формат.
Но не достаточно просто изменить формат ячеек. Необходимо после этого войти дабл-кликом в каждую ячейку. Только после этого форматы будут приняты.
Так часто происходит при экспорте данных из баз данных - формулы не хотят работать если в таблице БД, чтобы не заморачиваться с ограничениями на значение был задан формат данных "текстовой".
Для борьбы с этим у меня уже давно лежит в Personal макрос, который правит формат выделенных ячеек:

Попробовал изменить формат данных Вашего диапазона на текстовой и применить свой макрос. Всё заработало!
К стати, для того, чтобы изменения были наглядными, в соседних столбцах с диапазоном прописал формулы =ЕЧИСЛО и =ЕТЕКСТ, а для удобства добавил кнопки вызова макросов форматирования и исправления формата данных.
Сразу стало видно, что изначально у Вас при общем формате ячеек часть данных была числами, часть - текстом.
После простого форматирования в текст форматы к значениям в ячейках не применяются и в комбобоксе остаются точки, а после применения макроса всё становится нормально.
Почему так происходит, не могу понять. Но пользоваться таким "костылём" вполне можно, тем более, что макрос Repair_Value написан со всеми возможными ускорителями и даже большие массивы обрабатывает достаточно шустро.

Автор - Alex_ST
Дата добавления - 28.03.2023 в 15:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Инициализация списка именованого диапазона (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!