目前我正在尝试使用Networkdays.Intl减去两列之间两天的工作日。
但错误显示
对象的需要。
我需要如何解决这个问题?我实际上不确定我使用Networkday的方式.Intl是否正确。
这是我的代码:
Private Sub MinusWeekDays()
Dim InitialRow As Long
Dim EndRow As Long
Dim lrow As Long
Dim CurrentSheet As Worksheet
Set CurrentSheet = Excel.ActiveSheet
InitialRow = CurrentSheet.UsedRange.Cells(1).Row
EndRow = CurrentSheet.UsedRange.Rows(CurrentSheet.UsedRange.Rows.count).Row
For lrow = EndRow To InitialRow Step -1
CurrentSheet.Cells(lrow, "AH").Value = NetworkDays.Intl((CurrentSheet.Cells(lrow, "W").Value), (CurrentSheet.Cells(lrow, "V").Value), (CurrentSheet.Cells(lrow, "AG").Value))
Next lrow
End Sub
我也尝试用'11'直接替换CurrentSheet.Cells(lrow,“AG”)。值)通过做Dim intdays作为Integer,intdays = 11 coz以避免需要创建一个值为11的列但似乎失败了。
答案 0 :(得分:0)
您似乎错过了致电WorksheetFunction object的NETWORKDAYS.INTL function。我已将重复调用工作表移到周围的With ... End With statement。
WITH CurrentSheet
For lrow = EndRow To InitialRow Step -1
.Cells(lrow, "AH").Value = WORKSHEETFUNCTION.NetworkDays_Intl(.Cells(lrow, "W"), .Cells(lrow, "V"), 11)
Next lrow
END WITH
对于每一行,您不能只在第三个参数而不是.Cells(lrow, "AG")
中添加数字的周末类型是否真的不同?查看NETWORKDAYS.INTL function的官方文档,确保提供正确的参数。