Как я могу создать функцию многократного использования в Excel 2007?

2939
C. Ross

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

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

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

4

2 ответа на вопрос

6
Lance Roberts

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

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

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

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

Это называется пользовательской функцией UDF. Lance Roberts 14 лет назад 0
Звучит идеально, пробуя это сейчас. C. Ross 14 лет назад 0
2
JDunkerley

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

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

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

Похожие вопросы