[英]networkdays function not with vba
我正在構建一個日期斷路器,我需要計算不包括銀行假期的工作日。 我在 vba 中使用了 netwokingday 函數,但它似乎沒有選擇銀行假期的命名范圍。 這是我的一段代碼:
For i = 2 To new_Endrow
begin = Range("F" & i)
finish = Range("G" & i)
If finish <> "" Then
Range("H" & i) = Application.WorksheetFunction.NetworkDays(begin, finish, UKholidays)
End If
Next
請記住,“開始”和“結束”是短日期,而 UKholidays 是名稱范圍,它僅選擇顯示的表格的第一列,不包括標題。 當我在工作表中使用與普通單元格函數相同的函數而不是使用 VBA 的代碼時,它使用相同的語法完美地工作(=NETWORKDAYS(A1,B1,UKholidays),顯然 A1 和 B1 分別是“開始”和“結束”)
我建議進行以下更改,而不是現有。
Cells(i, "H").Value = Application.WorksheetFunction.NetworkDays(begin, finish, Range("UKholidays"))
如果計算行數或列數,則使用語法Range("H" + i)
會很麻煩。 如果Cells([Row], [Column])
是解決單個單元Cells([Row], [Column])
的首選方法。 VBA 將接受字符串格式的列,如Cells(i, "H")
但顯然,這必須轉換為Cells(i, 8)
因為 Excel 使用數字,而不是字符串。
此外,我希望你解決Value
財產,如果你指的是Value
屬性。 這是默認設置,如果省略它,Excel/VBA 將“理解”。 問題是Cells(i, 8)
,范圍和Cells(i, 8)
,它的值,對你來說是無法區分的,當 Excel 沒有理解你想要的意思時,你會感到困惑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.