Board logo

標題: [發問] 請教如何跳過周六周日兩天不算? [打印本頁]

作者: t8899    時間: 2014-10-25 19:05     標題: 請教如何跳過周六周日兩天不算?

請教跳過周六周日兩天不算此程序如何改?
sub test()
Dim rng
For Each rng In Range("AE4:AE15")
If rng <> "" And Month(rng) = Month(Date) And Year(rng) = Year(Date) Then
If Day(Date) - Day(rng) < 4 And Day(Date) - Day(rng) >= 0 Then '前三天到當日
MsgBox Day(Date) - Day(rng)
End If
End If
Next
end sub
作者: t8899    時間: 2014-10-25 21:52

本帖最後由 t8899 於 2014-10-25 22:17 編輯

想了一個小時  :-(
Sub MA3333()
Dim rng, k, abc, date2
For Each rng In Range("AE4:AE15")  
If rng <> "" And Month(rng) = Month(Date) And Year(rng) = Year(Date) Then
'------------------------------abc求出周六周日共幾天
abc = 0
date2 = Date
date2 = date2 - 1
For k = 1 To rng - date2  
date2 = date2 + 1
If Weekday(date2) = 1 Or Weekday(date2) = 7 Then abc = abc + 1
Next              
'-----------------------------abc求出周六周日共幾天
If Day(rng) - Day(Date) - abc < 4 And Day(rng) - Day(Date) >= 0 Then '前三天到當日通知
MsgBox  "前 " & Day(rng) - Day(Date)& " 天通知
End If  
End If         
'-----
Next
End Sub
作者: GBKEE    時間: 2014-10-26 09:04

回復 2# t8899
   
想了一個小時  :-(
想到了,就是你的.
可參考一下
  1. Option Explicit
  2. Sub Ex()
  3.     Dim rng As Range, E, eDAY As Date, i As Integer
  4.     eDAY = Date
  5.     If Weekday(eDAY, vbMonday) >= 6 Then MsgBox eDAY & " 是假日": Exit Sub
  6.     i = IIf(Weekday(eDAY, vbMonday) <= 3, 5, 3)
  7.     For Each rng In Range("AE4:AE15")
  8.         If IsDate(rng) And Int(eDAY - rng) >= 0 And Int(eDAY - rng) <= i Then
  9.             If Weekday(rng, vbMonday) < 6 Then
  10.                 MsgBox rng & " 前 " & Int(eDAY - rng) & " 通知"               
  11.             End If
  12.         End If
  13.     Next
  14. End Sub
複製代碼

作者: t8899    時間: 2014-10-26 09:43

回復  t8899
     想到了,就是你的.
可參考一下
GBKEE 發表於 2014-10-26 09:04

Weekday 我不是了解的很仔細........感謝指導!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)