首页 > 解决方案 > Networkdays 循环 - 我想获得 Networkdays 循环。但给出一个错误。我正在使用office 2016。提前感谢您的努力

问题描述

我正在 Office 2016 中尝试 networkdays 循环,但没有通过。

Sub Macro8()
    
    Dim N As Long
    Dim wf As WorksheetFunction
    
    
    Set wf = Application.WorksheetFunction
    
    N = Sheets("Dump").Range("A" & 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

标签: vbaworksheet-function

解决方案


您的代码中的问题是 i 计数器未定义,当您关闭循环时应该是“Next i”。不需要设置工作表功能。

尝试这个:

Sub TEST_NetworkDays()

    Dim N As Long, i As Long
    
    N = Sheets("Dump").Range("A" & 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

推荐阅读