4

Как я могу создать изменяемую функцию / формулу, которую я могу использовать в формулах в электронной таблице? В частности, мне нужна очень простая формула DateDiff, и мне нужен способ инкапсулировать эту функцию:

=(((HOUR(B3) * 60) * 60) + (MINUTE(B3) * 60) + SECOND(B3)) - (((HOUR(A3) * 60) * 60) + (MINUTE(A3) * 60) + SECOND(A3))

(Спасибо Филу Уинстанли)

2 ответа2

6

Эта ссылка полностью описывает, как это сделать ... инструкции были перечислены ниже:

  1. Откройте новую рабочую книгу.
  2. Получить в VBA (нажмите Alt+F11)
  3. Вставьте новый модуль (Вставка> Модуль)
  4. Введите пользовательскую функцию Excel (UDF) в VBA
  5. Выйти из VBA (Нажмите Alt+Q)
  6. Используйте функции (на листе) - они появятся в диалоговом окне "Вставить функцию", Shift+F3, в категории "Пользовательские")

Это для Excel-2003, но процесс тот же

Вы создаете модуль VBA с функцией, скажем NEWfunction,
затем укажите его в ячейке, =NEWfunction("A1") .

2

Хотя VBA UDF, вероятно, лучший путь. Формула, которую вы имеете, может быть упрощена до

=MOD((B3-A3)*86400,86400)

из-за способа, которым Excel хранит дату / время как удваивается

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .