Я не буду предоставлять полную реализацию, но я покажу вам, как вы можете это сделать (либо формула Excel , либо VBA-код ).Оба способа автоматически рассчитают нужные вам значения, поэтому вы можете легко импортировать их в Microsoft Access - при импорте будут вычислены значения из выбранных вами ячеек.
первый способ , который также является самым простым, состоит в том, чтобы сделать это с простой формулой Excel, рассмотрите эту картину, показывающую, как формула будет вычислять значения в столбцахF и G:
![DateDiff](https://i.stack.imgur.com/2LntO.png)
(примечание: отображается немецкий формат даты, но вы можете легко изменить его в Excel).
В столбце G вычисляется разница D2 - D1 и отображается в днях.Затем в столбце F имеется простое условие if
, чтобы определить, является ли дата D1 меньше, больше или равна D2. Результат рассчитывается автоматически.
Формула в строка 2 :
![JustFormula](https://i.stack.imgur.com/nn4e6.png)
Подсказка: Вы можете перетащить формулу в строк 3 - n ниже, чтобы вы могли создать множество строк, предварительно заполненных этой формулой.
A вторым способом является то, что вы можете написать функцию VBA для (простой) формулы расчета в столбце F:
Function CalcResult(D1 As Variant, D2 As Variant) As Variant
CalcResult = ""
Dim result As String
Dim diff As Single
diff = D2 - D1
If (diff > 0) Then
result = "D1 < D2"
ElseIf (diff = 0) Then
result = "D1 = D2"
ElseIf (diff < 0) Then
result = "D1 > D2"
End If
CalcResult = result
End Function
Это необходимо ввести в редакторе VBA, , который можно отобразить, если вы нажмете Alt + F11 .После этого нажмите Alt + F11 снова, чтобы закрыть VBA и вернуться на лист Excel.
Затем поместите формулу =CalcResult(E2; D2)
в * 1074.* ячейка F2 , как показано ниже:
![FormulaWithVBA](https://i.stack.imgur.com/9oEuI.png)
Как и в предыдущем примере, вы можете перетаскивать формулу в строки 3 - n ниже, так что вы можете создать множество строк, предварительно заполненных этой формулой.
Преимущество второго подхода заключается в том, что вы можете уточнить функцию CalcResult
позже без необходимости менять ячейкиснова (как это имеет место в первом примере).
Примечание: Вышеприведенная функция должна быть в отдельном модуле, и вам необходимо сохранить рабочую книгу как «Рабочая книга с поддержкой макросов».позже - в противном случае вы потеряете код VBA.
A Третий способ заключается в использовании макросреда Excel и записичто бы вы ни собирались делать.Он создаст публичный модуль с кодом VBA. Если диктофон попросит вас, выберите сохранение кода в рабочей книге.
Позже вы повторно посетите сгенерированный код VBA и уточните его - например, поместите вокруг него цикл for, чтобы автоматизировать записи, которые вы записали один раз.Этот подход хорош для создания кнопки «Рассчитать» и добавления некоторой логики.