Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
О проблеме совместимости библиотеки элементов MSForms в Win10, при системной запятой как разделителе целой и дробной частей числа
 
Информирую о том, что в Windows 10 библиотека FM20.DLL элементов формы MSForms как в 32-х, так и в 64-х битных версий Office работает с преобразованием десятичных чисел в текстовое значение контролов TextBox, ListBox и ComboBox иначе, чем это было ранее.
Возможно, конечно, что это какие-то особенности установки Office, но проявляется не только у меня - неплохо было бы проверить и на других компьютерах с Win10.
У меня в Win10 64 бит проблема есть как в 32 битной версии Excel 2010, так и в 64-битной версии Excel 2016.

Проблема проявляется, когда в качестве разделителя целой и дробной части десятичного числа в операционной системе используется не точка, а запятая, как в русской локализации. Если ранее VBA  код TextBox1 = 1.23 или TextBox1.Value = 1.23 помещал в TextBox1 текстовое значение 1,23 с запятой, то теперь в Win10 помещает текстовое 1.23 с точкой. И получается, что  IsNumeric(TextBox1.Value) = False, а CDbl(TextBox1.Value) приводит к ошибке, чего ранее не было.

Обойти проблему можно использованием TextBox1.Text = 1.23 или TextBox1.Value  = CStr(1.23), тогда в результате будет запятая, а не точка.
Здесь 1.23   - число для примера, понятно, что это число может быть задано неявно, например, как Range("A1").Value и т.п.

Хуже обстоит дело с элементами ListBox и ComboBox, которые так ListBox1.List = Range("A1:A4").Value теперь тоже заполняются с использованием точки вместо запятой в качестве разделителя целой и дробной частей числа. Можно, конечно, применять ListBox1.AddItem CStr(1.34) , но это медленнее.
В других элементах MSForms нет такой проблемы, например, Label2 = 1.23 помещает, как и ранее, текстовое значение 1,23 с запятой.

В принципе, то, что TextBox1.Value теперь независимо от локализации, а TextBox1.Text – зависимо, может быть интересным,
но все же это явная ошибка совместимости версий, прошу учесть всем, у кого в коде это критично.
Изменено: ZVI - 02.07.2019 09:01:11
[ Закрыто] Альтернатива РАЗНДАТ обычными формулами
 
Видел кратко сегодня 2 темы Лунтика по замене скрытой функции РАЗНДАТ на обычные формулы.
Пока отвлекся, уже одну тему закрыли, а другую удалили.
Сильно не вникал в задачу иначе бы точно запутался ))
Но так как что-то уже было надергано из источника, то выложу здесь вариант для дат, больших текущей, аналогично использованию РАЗНДАТ с параметрами "m" и "md".  В столбце F - формулы с использованием РАЗНДАТ а в столбце G - обычными формулами.
Один вопрос - одна тема, Нет такого в правилах
 
Не нашел в правилах ни требования, ни рекомендаций по поводу того, что в одной теме должен быть только один вопрос. Тем не менее, это правило применяется, например, здесь есть такая фраза:
"Вопросы удалил. Один вопрос - одна тема. [МОДЕРАТОР]".
Логичным было бы дополнить правила этим требованием. Либо не применять его.
В папке Входящие нет сообщений от тех, у кого нет сообщений на форуме, На почту приходят сообщения, но на форуме во Входящих их нет
 
Получил пару писем от нового пользователя, у которого количество сообщений на форуме равно нулю.
Почему-то в папке Сообщения- Входящие ничего от этого пользователя нет, прошу проверить не глюк ли это.

В начале полученных писем был такой текст:
Информационное сообщение сайта Планета Excel
------------------------------------------

Вы получили персональное сообщение с форума на сайте planetaexcel.ru
.
Надстройки PowerPivot и Power View теперь включены в недорогие версии Excel 2013
 
В Microsoft прислушались к пожеланиям пользователей и сняли ранее действующие ограничения на включение надстроек PowerPivot и Power View в недорогие версии Excel 2013.
Теперь эти надстройки входят, например, в такие комплекты продаж:
Microsoft Excel 2013 (1PC/1User) (Download) $99.99
Microsoft Excel 2013 Key Card Non-Commercial (1PC/1User) $71.74 & FREE Shipping

Появился смысл разбираться с ними, так как теперь они станут популярными не только для избранных.
В принципе, большая часть новизны новой версии Excel - в этих и некоторых других надстройках.
Помнится, кто-то из активных разработчиков приложений в Access высказал опасение, что эти надстройки создают альтернативу их решениям и составят большую конкуренцию для них.

О назначении надстроек кратко есть в статье Николая Павлова Обзор надстроек и приложений для Excel 2013
Изменено: ZVI - 20.08.2013 06:12:38
Fuzzy Lookup Add-In for Excel from Microsoft, Надстройка нечеткого (интеллектуального) поиска от Microsoft
 
Удобную бесплатную COM-надстройку для нечеткого поиска, оказывается, еще с апреля 2011г. предлагает компания Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=15011

Надстройка позволяет производить поиск и выборку данных в 2-х таблицах, в которых схожие данные ключевых столбцов записаны с какими-то отличиями (сокращения, порядок слов, опечатки и т.п.).
Можно обрабатывать и одну таблицу для поиска в каком-либо столбце дубликатов с нечетким совпадением.

Функциональность подобна многим известным версиям интеллектуального ВПР, но значительно расширена.
Реализована без формул, а с помощью наглядного визуального конфигурирования.
В результате создается выборка не по одному столбцу, как в ВПР, а по заданному составу столбцов обеих таблиц.

Интерфейс очень удобный и продуманный, множество настроек, возможность добавления пользовательской таблицы замен, весовых коэффициентов, достаточно подробное и внятное описание алгоритма (на английском языке).

Первое впечатление - очень приятное  :)  

Работает в версиях Excel, начиная с 2007 но только в 32-битных , операционная система - XP и выше 32 или 64 битная.
Время работы, как и при любом нечетком поиске, резко увеличивается при увеличении размеров обрабатываемых таблиц.
Для установки нужно запускать setup.exe , а не FuzzyLookupAddInForExcelSetup.msi
Изменено: ZVI - 20.08.2013 04:23:17
Лишняя точка с запятой в режиме редактирования, Проблема движка форума
 
Обнаружил, что в такой, например, формуле:
=СРЗНАЧ(ЕСЛИ(C5:N5*ЕЧИСЛО(ПОИСК(ПРАВБ(C3:N3;2);"СрСб"));C5:N5))
при входе в режим изменения сообщения после "СрСб" добавляется лишняя точка с запятой и еще пара пробелов.

При этом флажок "Показывать графические смайлы в этом сообщении" отключен.

Вот так выглядит формула, если нажать кнопку Изменить:
=СРЗНАЧ(ЕСЛИ(C5:N5*ЕЧИСЛО(ПОИСК(ПРАВБ(C3:N3;2);"СрСб" ;) );C5:N5))
Изменено: ZVI - 29.05.2013 16:06:33
Off: Студент, ты записался в програмисты Microsoft? :-)
 
Получил от Microsoft по рассылке для MVP приведенное ниже сообщение, которое, возможно, заинтересует молодежь с правильными амбициями:  
 
"На следующей неделе Микрософт проводит в Москве и Санкт Петербурге серию интервью на SDE/SDET позиции. В этом году люди набираются на позиции как в Рэдмонде, так и в Москве. Это замечательная возможность помочь вашим друзьям и знакомым попасть в Microsoft, если конечно они толковые программисты.  
 
ВНИМАНИЕ: Приглашаются только студенты старших курсов, аспиранты, и те, кто недавно был таковыми. Устроиться можно интерном на следующее лето или получить оффер на штатную позицию по окончании учебы. Подать заявление можно здесь: www.microsoft.com/university , и сделать это надо как можно скорее (интервью на следующей неделе)."  
 
Поясню, что SDE означает Software Development Engineer (инженер-программист), а SDET - Software Development Engineer in Test (инженер-тестировщик ПО).
Ответ по примерам для XNUMBERS.XLA
 
Так как тема http://www.planetaexcel.ru/forum.php?thread_id=11915 была закрыта, отвечу здесь.  
 
Excel представляет числа с 15-ю значащими цифрами, поэтому большИе числа нужно представлять в текстовом виде. То есть, либо выделять их в формулах двойными кавычками, например: "12345678901234567890", либо установить текстовый формат ячейки и вписать в такие ячейки текстом числа, на которые будут ссылаться формулы надстройки.  
Можно комбинировать большие числа с обычными.  
 
Функции больших чисел начинаются с "x", например, xAdd() - сложение.  
 
Для сложения двух больших (текстовых) чисел используется функция:  
=xAdd("БольшоеЧисло1";"БольшоеЧисло2";КоличествоЗначащихРазрядов)  
 
По умолчанию КоличествоЗначащихРазрядов=30, если устраивает, то этот параметр можно не указывать.  
 
Введите, например, в ячейку A1 с общим форматом такую формулу:  
=xAdd("12345678901234567890123456789";"111111111122222222234567891")  
После нажатия Enter результат сложения будет равен: "12456790012356790112358024680"  
 
Вместо чисел в двойных кавычках могут быть ссылки на текстовые ячейки, в которых записаны большие числа.  
 
Для вычитания можно поставить минус перед одним из слагаемых в xAdd() либо применить функцию вычитания:  
=xSub("12345678901234567890123456789";"111111111122222222234567891")    
 
Пример умножения:  
=xMult("12345678901234567890123456789";"111111111122222222234567891")  
Результат: "1,37174210027434842017985050455E+54"  
 
Пример деления с 50-ю значащими разрядами:  
=xDiv("12345678901234567890123456789";"111111111122222222234567891";50)  
Результат: "111,11111009999999998876544243669126385757915675311"  
 
Можно и иначе (проще) с помощью функции xEval("Вычисляемое_Выражение").  
Пример сложения с умножением на 2 и делением на 3:  
=xEval("(12345678901234567890123456789 + 111111111122222222234567891) * 2 / 3 ")  
Результат: "8304526674904526741572016453,33"
Re: Из бланка на другой лист
 
---  
Прилагается вариант с некоторыми излишествами и с подробными коментариями.  
---  
ZVI
Выделение ячеек в зависимости от цвета (надстройка)
 
---  
Из-за непонятных проблем искажения сообщений вынужден создать копию темы (автор запроса - Гость), чтобы выложить обновленный вариант надстройки.    
В 1-й версии (вчерашней) вызов из меню не выполнялся - приношу свои извинения.  
В исправленной прилагаемой 2-й версии все работает.  
---  
ZVI
Страницы: 1
Наверх