#vba #worksheet-function
Вопрос:
я пытаюсь запустить цикл networkdays в office 2016, но не справляюсь.
Sub Macro8()
Dim N As Long
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
N = Sheets("Dump").Range("A" amp; Rows.Count).End(xlUp).Row
Range("E1") = Date 'i want to use today's date as lastest date to find the networkdays
For i = 2 To N
Cells(i, 4).Formula = wf.NetworkDays(Cells(i, 3), Cells(1, 5))
Next N
End Sub
Ответ №1:
Проблема в вашем коде заключается в том, что счетчик i не был определен, и когда вы закрываете цикл, должно быть «Следующее я». Нет необходимости устанавливать функцию рабочего листа.
Попробуйте это:
Sub TEST_NetworkDays()
Dim N As Long, i As Long
N = Sheets("Dump").Range("A" amp; Rows.count).End(xlUp).row
Range("E1") = Date 'i want to use today's date as lastest date to find the networkdays
For i = 2 To N
Cells(i, 4).Value = Application.WorksheetFunction.NetworkDays(Cells(i, 3), Cells(1, 5))
Next i
'with Holidays
For i = 2 To N
Cells(i, 4).Value = Application.WorksheetFunction.NetworkDays(Cells(i, 3), Cells(1, 5), Range(Cells(3, 9), Cells(12, 9)))
Next i
End Sub