Стыдно признаться, но я уже почти полтора года для работы и повседневных нужд использую Linux (Ubuntu 16.04). Счастлив бесконечно: многие проблемы связанные с ОС Windows ушли в прошлое, появились новые Однако, вцелом, оцениваю данный переход исключительно положительно и дальнейший свой юзерский/програмисстский опыт ближайшего будущего вижу исключительно с Linux.
Обсудить я хотел следующее: у нас по стране шагает импортозамещение. В частности, пользователей гос. сектора переводят на Linux:
В связи с чем, я предполагаю, что для обычного пользователя в среднесрочной перспективе фокус от "владения базовыми навыками работы в эксель" сместится в сторону "владения базовыми навыками работы с табличными процессорами" (на один уровень абстракции выше).
Оглядываясь в прошлое, я пытался проанализировать и понять, почему в РФ настолько широкое распространение получили ОС семейства Windows. На мой взгляд это обусловлено следующими причинами:
лоббирование интересов Microsoft на гос. уровне начиная с 90-х гг XX века
из п.1 вытекает --> преобладание ОС этого семейства в гос. секторе
из п.2 вытекает --> использование в учебных заведениях
из п.1 и п.2 --> распространение на домашние ПК
Нетрудно заметить, что вся текущая ситуация вытекает из п.1. Сейчас, в связи с импортозамещением, как мне кажется, в п.1 вместо Windows будет значится GosLinux / ALT Linux, а далее все пойдет по каскаду и это вопрос времени.
Есть у меня надстройка, кот. писал еще при царе Горохе (DropDownList) Хочу прикрутить к ней небольшое API вида:
set ddlist = new DDList(params);
ddlist.show(); ddlist.hide();
и пару коллбеков: ddlist.onEnter - функция, обрабатывающая ввод данных. В ней можно выдавать сообщения пользователю и т.п. Если возвращает true - данные вводятся в ячейку, false - нет. ...
Это вообще возможно в vba организовать? (обмен данных между надстройкой и файлом, в кот. используется надстройка)
Спасибо.
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Вообще какой-то бред показывает. Удаляет выборочно сообщения из истории во всех сообщениях. Судя по всему неверная выборка из базы и/или сортировка выборки
// Запускаем функцию foo.
// Передаем ей ссылку на функцию обратного вызова,
// в которую будет передаваться текущее значение счетчика - "i"
foo( f unction( i ) {
// тут мы получаем значение счетчика
});
// foo - функция, в кот. крутиться цикл.
// Каждую итерацию она вызывает другую функцию - "callback"
// и предает ей значение счетчика.
function foo( callback ) {
for( var i = 0; i < 10; i +=1 ) {
callback( i );
}
}
Есть мысли с Application.Run, но пока додумать не могу.
Периодически приходится писать макросы для получения информации с веб-страниц. Для выборки элементов со страницы, пробовал использовать сторонние скрипты, но они работают не надежно. Вопрос: кто-нибудь писал для своих нужд css селектор, хотя бы простой? Например:
Selector("div.class span", htmlPage) - выбрать все span элементы, которые содержаться в div элементах с классом class.
Если да и готовы поделиться, то будьте так любезны. А то писать с нуля лениво.
Привожу ссылку на ресурс со смайлами для использования (вставки) на форум.
Как пользоваться: 1. перейти по ссылке 2. правый клик на любом смайле 3. копировать адрес изображения 4. перейти на форум 5. нажать кнопку "Изображение" 6. вставить скопированную ссылку
По приведенной выше ссылке можно переключать паки смайлов: 1. перейти по ссылке 2. подвести мышь к левой границе экрана 3. выбрать нужный пак
Недавно посетила мысль по поводу взаимодействия с пользователем (пользовательских форм). Не знаю как Вам, а мне всегда казалось, что VBA формы выглядят невзрачно, тускло, грустно. Чего стоит работа с ними (обработка событий). Замучаешься вешать обработчики, в то время как дело должно решаться обычным делегированием. Ближе к делу. Есть такой замечательный кантрол WebBrowser, который позволяет загружать в себя html, xml страницы. Можно тупо понаделать шаблонов и подгружать их с диска. Стили, внешний вид, все настраивается до мелочей. Появится возможность использовать анимацию! (плюшки) и не только. Динамически создавать любые элементы, гибкость. Кто что думает на этот счет?
скромный пример во вложении (для работы нужен инет)
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Ситуация следующая: написал пользовательскую функцию наподобие этой [интеллектуальный ВПР (сопоставление ПОХОЖИХ текстов) - http://www.planetaexcel.ru/forum.php?thread_id=22556], которая возвращает массив, состоящий из двух элементов: 1. найденная строка 2. процент совпадения
Вопрос: как на листе прописать выбор второго элемента из этого массива? (первый возвращается по умолчанию, с ним проблем нет)
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Хотел бы услышать ваше мнение насчет применения ООП в VBA.
В связи с частым использованием многих функций, хотел собрать их в один объект, дабы было удобно использовать, пример:
Dim x As New nerv ' имя класса - мой ник : ) Dim col As New Collection
' пример использования - формирование строки из коллекции MsgBox nerv.Collection.toString(col)
' формирование массива из коллекции arr = nerv.Collection.toArray(col)
Я уж молчу про то, что нельзя сделать просто и очевидно - добавить свои методы/свойства к предопределенным объектам: MsgBox col.toString() arr = col.toArray()
но, вам не кажется, что добавлять модуль класса, просто для того, чтобы там написать Public Collection As New Collection_ - лишним?
Это только верхушка айсберга: почему приватные поля класса видны при создании объекта в отладчике? Они ж приватные! При обращении к ним возникает ошибка. Дядя, Бил, ты перемудрил.
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Есть надстройка (почти есть...) в ней определена функция. В надстройке имеется следующая запись
Private Sub Workbook_Open():Me.IsAddin = True:End Sub
Теперь открываем любую книгу Excel. Эта функция доступна на листе по средством "вставки функции", т.е. она вроде как является "функцией листа", но по Application.WorksheetFunction к ней не обратиться (хотя это и опять-таки почти логично, она ж пользовательская). Как ее использовать в другой книге и возможно ли это вообще?)
Если не ошибаюсь, ее можно использовать с помощью Application.Run. Может быть есть пути попроще, на подобие Call Имя_Функции?
Заранее спасибо : )
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Позволю себе выложить наработку нечеткого поиска по словарю, задаваемому пользователем. Вероятная цель: упрощение ввода данных, "приблизительный" поиск, "умный" поиск и т.п.
\Нажмите кнопку. Откроется форма. Введите туда первую букву слова, кот. Вам хотелось бы найти на листе. В комбо сформируется список предполагаемых вариантов. Затем введите вторую. Список, значительно сократиться. Введите какое-нибудь слово с одной ошибкой ввода, например, "провила", комбо-лист предложит Вам "правила".
На данный момент это только наработка. И в ней учитывается только одна ошибка ввода. В дальнейшем их кол-во можно увеличить до 2-3 (больше не вижу смысла), плюс использовать еще немного другой алгоритм поиска ошибки.
Немного о том, что уже есть - функция, кот. передаются два параметра: 1-ый - область поиска, так называемый словарь 2-ой - строка, по кот. производиться поиск
Собственно, че я выложил её такую корявую?) Думаю, мож кто чего дельного подскажет посоветует по данному вопросу/алгоритму.
p.s.:Вся информация на листе1 исключительно для примера.
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук