2016-12-05 3 views
1
Public Function WorkDayDiff(ByRef StartDate As Range) As Integer 

     Dim Counter As Integer 
     For Counter = 1 To DateDiff("d", StartDate.Value, Now()) 
      If Weekday(CDate(StartDate.Value + Counter)) > 1 And Weekday(CDate(StartDate.Value + Counter)) < 7 Then 
      WorkDayDiff = WorkDayDiff + 1 
     Next Counter 
End Function 

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

ответ

1

есть чтение этого:

http://www.cpearson.com/excel/differen.htm

В то же время, вы можете вызвать его из подлодки, но не поставить его в суб, если я вас правильно понял вы хотите этого.

sub MainSub() 
    dim myDate as range 
    set myDate = sheets("Sheet1").range("A1") 
    WorkDayDiff myDate 
end sub 
Public Function WorkDayDiff(ByRef StartDate As Range) As Integer 

     Dim Counter As Integer 
     For Counter = 1 To DateDiff("d", StartDate.Value, Now()) 
      If Weekday(CDate(StartDate.Value + Counter)) > 1 And Weekday(CDate(StartDate.Value + Counter)) < 7 Then 
      WorkDayDiff = WorkDayDiff + 1 
     Next Counter 
End Function 
+0

Спасибо, придав ему идти :) – FrasercT

+0

используя формат, предложенный я получаю ошибку рассогласования 13 для линий, где я использую значение WorkDayDiff, есть ли способ решить эту проблему? – FrasercT

+0

Oups, не заметил, что функция ожидала диапазон. Это теперь обновлено. Посмотрите на ответ сейчас, он ожидает, что значение даты в листе1 диапазона A1 – User632716

Смежные вопросы