2013-10-17 78 views
0

我有一段如下代碼。我試圖計算在ColA.I中提到的指定日期後的第n個工作日,ColB中有假期列表(B1 :B20)。我被困在如何在XXX地方的FOR循環中引用這些假期。在Excel中提到for循環中的一個單元格範圍VBA

For i=1 to m 
cells(i,"c").Value=workday(cells(i,"A").Value,n,XXX) 
next i 

回答

1

只需在原地添加範圍即可。

For i=1 to m 
cells(i,"c").Value = WorksheetFunction.WorkDay(cells(i,"A").Value,n,[B1:B20]) 
next i 

或者,如果你會做大量的循環可能是有用的,填補了日期在一個陣列

Dim Holidays As Variant 
Holidays = [B1:B10] 

For i=1 to m 
cells(i,"c").Value = WorksheetFunction.WorkDay(cells(i,"A").Value,n,Holidays) 
next i 

UPDATE:這是我根據您的評論測試,你能解釋什麼是錯的嗎?

enter image description here

因此,從3月1日5個工作日,2013將是2013年3月8日:

  1. 3月4日
  2. 3月5日
  3. 3月6日
  4. 3月7日
  5. 3月8日

    以及我的清單中的所有假期(隨機天數),只有1個屬於第1個和第8個之間, 3/4/2013。因此,它將結果改變爲3月11日。從您的評論中,您聽起來像是在說你的結果是:3月22日,5日營業日加10日假期,這是正確的嗎?正如你所看到的,我沒有收到這個結果。所以,也許更多的細節可以幫助?或者,也許更好的另一個問題。

+0

+1擊中我30秒。 –

+0

我能夠像你說的那樣引用假期。我還有一個問題。假設單元格A3包含一個值3/1/2013,並且我想在A3之後的第5個工作日找到它。但通過引用你提到的單元格,它會考慮所有的假期,包括1月和2月的那些。但是我只想在3月1日和3月第5個工作日之間考慮。有沒有辦法做到這一點? –

+0

@ManasaJ添加了一個示例,如果你可以參考你的經驗反對,也許我將能夠更好地理解你的問題。 – user2140261

相關問題