Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > получить результат после запуска програмы из excel


Автор: novitskyam 19.4.2017, 10:34
как запустить программу из excel передав ей в качестве аргументов значения каких-то ячеек  и получить обратно результат отобразив его  в ячейке.

Автор: Naghual 19.4.2017, 10:41
Сложно представляю для чего такой сценарий необходим.
А учитывая политику запуска книг с макросами - вообще практически нереально.

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

Автор: novitskyam 19.4.2017, 11:23
В магазине установлен банкомат. Известно расписание работы магазина оно заполнено в exel по дням недели с чч1:мм1 по чч2:мм2. Известны промежутки простоя банкомата с дд1.мм1.гг1 чч1:мм1  по дд2.мм2.гг2 чч2:мм2.  Надо вычислить количество дней часов минут простоя банкомата в рабочее время магазина. 
  Например в понедельник магазин работает с 10:00 до 20:00. Банкомат был в нерабочем состоянии с 2:00
до 11:00. Значит простой банкомата в понедельник составил ровно 1 час.
    Чисто в exel проблематично выполнить. В VBA можно попробовать, но я хотел бы вызвать программу написанную на c# передавать ей в качестве аргументов начало и конец простоя. Программа рассчитает простой банкомата и вернет результат и отобразит в ячейке. 

Автор: Akina 19.4.2017, 12:16
Цитата(novitskyam @  19.4.2017,  12:23 Найти цитируемый пост)
Чисто в exel проблематично выполнить

Совершенно никаких проблем. Простейшая функция в модуле.

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

Можно это даже без модуля, формулами реализовать. Только муторно слишком.

Автор: vpf 19.4.2017, 12:33
Да ладно муторно, в Excel прямо в свободной колонке разбираются цифры на отдельные ячейки по разделителям  "." и ":"
Далее в каждой строке вычисляется время простоя и затем эта колонка суммируется. 
Все.
Формулами в Excel мы расшивали описание пинов микропроцессора из даташита, где каждый пин имеет несколько функций
Функций от 1 до 8, пинов от 150 до 350.
И добавляли анализ перекрестный, так как одна функция могла быть доступна через разные пины, и если занято одним,
то другие уже не могут ей воспользоваться. Все  не вылезая из Excel без VB, чисто формулы. 
Вот это было муторно smile

Автор: Akina 19.4.2017, 13:04
Цитата(vpf @  19.4.2017,  13:33 Найти цитируемый пост)
Да ладно муторно, в Excel прямо в свободной колонке разбираются цифры на отдельные ячейки по разделителям  "." и ":"
Далее в каждой строке вычисляется время простоя и затем эта колонка суммируется. 

Ну представь себе, что простой продолжался три дня с полудня до полудня... строка одна, а простоев-то надо насчитать для суммирования аж 4 штуки.

Я не говорю, что невозможно - возможно. Но получится то ещё многоэтажное безобразие.

Автор: oloko900 11.2.2018, 23:10
Модератор: Сообщение скрыто.

Автор: novitskyam 12.2.2018, 22:34
Спасибо за участие в обсуждении темы, я просто хотел начать на работе программировать. Пока в Excelе увидел возможность  применить свои силы. Все сделал при помощи VBA. Но цель была сделать что-то на c#. Сейчас увидел конкретную задачу и хочу реализовать на c#, с которым знаком не был. Открывать буду темы по с#. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)