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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 14:16   #1
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
Лампочка Чего Вам не хватает в Excel и VBA?

Коллеги,
предлагаю немного отвлечься и помечтать на тему того, какие приятные мелочи могли бы сделать процесс программирования немного легче.

как пример:
- процедуру, вроде Distinct(Range1, Range2) as Range, возвращающую область, получившуюся после вычитания из области Range1 области Range2. например:
Код:
Distinct( ActiveSheet.CurrentRegion, [1:1])
вернет область данных заполненной таблицы без заголовка.

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

- ввести в стандартные функции что-то типа
Код:
=ФИЛЬТР(A1:B100; 2; "фильтр")
которая возвращает двухмерный массив значений, в котором в столбце 2 содержится "фильтр"

з.ы. ну и подоплека темы: это может помочь кому-то найти более элегантные решения своих проблем.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 25.03.2013, 15:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Нехватает:

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

2) возможностей ООП - что в «нормальных» языках программирования (типа С++) реализовано.
Например, хочу в объекты Excel добавить свои методы и свойства - вроде вашего Distinct - и никак этого не сделать, приходится писать функции

3) нормального IntelliSense (как в Word)

4) устойчивой защиты проекта VBA (которая бы не снималась за секунду)


Цитата:
переделать функционал таблиц так, чтобы заголовок мог состоять из 2 и более строк.
Польза от этого, думаю, будет всем очевидна
хз... ни разу не сталкивался с подобной проблемой.
EducatedFool вне форума Ответить с цитированием
Старый 25.03.2013, 15:23   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

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

Цитата:
1) возможности вводить формулы на английском или русском, без переключения языковых пакетов
Присоединяюсь. Сильно раздражает, когда формулы на русском, а ссылки на английском.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 25.03.2013, 22:01   #4
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Сильно раздражает, когда формулы на русском, а ссылки на английском.
Я вообще не смог найти хотя бы ОДНОЙ причины перевода названия функций Excel на локальные языки...
Разве что заработок переводчиков. НО почему, в таком случае, не перевести на локальный язык VBA?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 26.03.2013, 11:55   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Я вообще не смог найти хотя бы ОДНОЙ причины перевода названия функций Excel на локальные языки...
Разве что заработок переводчиков.
Серж,

речь идет о том, чтобы в ячейках можно было одновременно использовать как
Код:
=SUM
, так и
Код:
=СУММ
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 26.03.2013, 13:08   #6
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
1) возможности вводить формулы на английском или русском, без переключения языковых пакетов
я бы оставил только на инглише

Цитата:
Например, хочу в объекты Excel добавить свои методы и свойства
+

Мне не хватает в vba:
- создания объектов на лету
- функций высшего порядка
- обращения к свойствам и методам объектов таким способом Range("A1")[ "Value" ]
- цикла по ключам объектов и по их значениям
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 26.03.2013, 14:12   #7
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

- открытой библиотеки пользовательских процедур и функций
- возможности писать макросы вне excel (т.е. простой и удобной среды (как компонент visual studio) для создания оболочек и подключения к разным источникам данных)
- возможности работать полноценно с закрытыми книгами excel
- литературы для профессионалов особенно по объектной модели и olap кубам (все что встречал, в лучшем случае для середнячков) + литературы по связкам excel(vba)-1c, excel(vba)-word(vba), excel(vba)-navision, excel(vba)-outlook(vba), excel(vba)-access(vba)
-встроенного tsql (чтоб работать с таблицами sql запросами) (вот представьте

select top (100) Name.Лист1, Age.Лист2, Comment.Лист1
into Лист3 (cells(1,1))
from лист1 inner join лист2 on
where date between '13.03.2013' and '25.03.2013'
order by column1, column2,column3
)

в сравнении с ВПР, это было бы более гибко

- процедуре или функции из нутри определять собственное имя, название модуля
-соразмерной скорости выполнения собственных макросов, формулам вшитым (т.е. если самому написать свою ВПР, то как ее не оптимизируй, все равно она будет медленнее)
-написанных полноценных , свободных, framework библиотек (например библиотека позволяет обращаться к внешнему железу, или вот еще одна, позволяет полностью обходиться без 1c (делающая из excel -> 1с) итд)

Последний раз редактировалось RISagitov; 26.03.2013 в 14:38.
RISagitov вне форума Ответить с цитированием
Старый 26.03.2013, 15:28   #8
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
- открытой библиотеки пользовательских процедур и функций
Простор для макровирусов, или я не прав?

Цитата:
- литературы для профессионалов особенно по объектной модели и olap кубам (все что встречал, в лучшем случае для середнячков) + литературы по связкам excel(vba)-1c, excel(vba)-word(vba), excel(vba)-navision, excel(vba)-outlook(vba), excel(vba)-access(vba)
Скорее всего все это есть, но стоит денег и не столь широко распространено.

Цитата:
- возможности работать полноценно с закрытыми книгами excel
Это вряд-ли. Примерно так же как найти нужный абзац в книге не открывая её.

Цитата:
в сравнении с ВПР, это было бы более гибко
и, пожалуй, заметно медленнее. Как не крути, то листы и ячейки - объекты и работать с ними не столь просто, как кажется. Особенно для запросов.

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

Цитата:
- процедуре или функции изнутри определять собственное имя, название модуля
это уже смахивает на контроль за выполнением программы. тут есть вполне честное решение - воспользоваться API. Немного напряжно, но такие задачи тоже бывают не каждый день.

Цитата:
-написанных полноценных , свободных, framework библиотек (например библиотека позволяет обращаться к внешнему железу, или вот еще одна, позволяет полностью обходиться без 1c (делающая из excel -> 1с) итд)
касательно 1С - как я помню, есть целая группа COM-объектов предназначенная для работы с системой из сторонних программ. Не вижу причин не использовать их в Excel-е, если есть такая необходимость.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 26.03.2013, 16:07   #9
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

>>Простор для макровирусов, или я не прав?

зависит от того как это реализовать

копируешь ту же ВПР, вставляешь к себе, правишь, чисто под конкретные нужды, называешь типа function myVPR

+ чтоб развиваться, узнавать о тонкостях, скрытых возможностях

>>Скорее всего все это есть, но стоит денег и не столь широко распространено.

скорее всего уже и эта ветка в интернете где то обсуждалась и похожий на ваш ответ тоже где то имеется


>>>Это вряд-ли. Примерно так же как найти нужный абзац в книге не открывая её.

это как раз возможно

>>>и, пожалуй, заметно медленнее. Как не крути, то листы и ячейки - объекты и работать с ними не столь просто, как кажется. Особенно для запросов.

речь не о скорости и не про плюсы и минусы, а о гибкости которой время от времени не хватает


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

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

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

в том то и дело что напряжно
все что на каждый день, уже сделано
речь о ненапряжных доп возможностях

мне часто приходится отлаживать и разбираться в чужих гигантских vba проектах
чтоб быстро избавится от мертвого кода, можно в каждую процедуру и функцию вставлять вызов своей функции, которая документирует ход выполнения проекта в таблицу.
а как по вашему ей узнавать, где она сейчас находится?

если такой уровень проблем вы не решаете, то какие мы коллеги?


>>>Не вижу причин не использовать их в Excel-е, если есть такая необходимость.

1С-овсцы тоже не видят такой необходимости



>>>Коллеги,
предлагаю немного отвлечься и помечтать

"вы мечтайте, а я ваши мечты буду критиковать!!"
верно?

Последний раз редактировалось RISagitov; 26.03.2013 в 16:27.
RISagitov вне форума Ответить с цитированием
Старый 26.03.2013, 16:28   #10
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

на мой взгляд очень не удобно работать с модулями класса. Они начинают размножаться очень быстро Хотя, по другому в VBA, видимо, не получится.
Я к чему: например, чтобы создать такую структуру
Код:
var obj = {
    prop: {
        prop: {
            value: null
        }
    }
};

// obj.prop.prop.value = null;
придется создать минимум два модуля класса. Вообще, vba не приспособлен для работы с объектами. В нем акцент на работу с коллекциями.

Еще не надо забывать, что язык изначально создавался для не программистов.
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# vs Java. Чего вам не хватает в одном, что есть в другом? Izobara Свободное общение 13 11.03.2013 09:02
По моему чего то не хватает ? mixazavra Компоненты Delphi 9 31.10.2012 21:41
Каких возможностей вам не хватает в Дельфи? Sicorski Софт 16 25.11.2008 00:57
Чего вам не хватает в вашем языке? crazy horse Свободное общение 3 02.09.2008 17:25