|
发表于 2013-11-26 13:56
|
显示全部楼层
本楼为最佳答案
本帖最后由 fjmxwrs 于 2013-11-26 14:03 编辑
brothersonline 发表于 2013-11-26 13:24
呵呵,是我表达不清楚,那就不要放假的条件了。
我这里给你写了元旦三天假,国庆7天假的,你看下是不是这个意思,其他假期,你自己加进去就行了- Sub test()
- Dim arr, brr(), iRow%, x%, y%, i%
- With Sheets("记事本")
- iRow = .Cells(Rows.Count, 1).End(xlUp).Row
- arr = .Range("B4:C" & iRow)
- ReDim brr(1 To UBound(arr))
- For x = 1 To UBound(arr)
- If arr(x, 2) = "张 健" Then
- If arr(x, 1) >= DateSerial(Year(Date), 1, 1) And arr(x, 1) < DateSerial(Year(Date), 1, 4) Or arr(x, 1) >= DateSerial(Year(Date), 10, 1) And arr(x, 1) < DateSerial(Year(Date), 10, 8) Then
- brr(x) = "放假、值班"
- ElseIf Weekday(arr(x, 1), vbMonday) = 1 Then
- brr(x) = "计划、巡诊、值班"
- ElseIf Weekday(arr(x, 1), vbMonday) = 5 Then
- brr(x) = "小结、值班"
- Else
- brr(x) = "值班"
- End If
- Else
- If arr(x, 1) >= DateSerial(Year(Date), 1, 1) And arr(x, 1) < DateSerial(Year(Date), 1, 4) Or arr(x, 1) >= DateSerial(Year(Date), 10, 1) And arr(x, 1) < DateSerial(Year(Date), 10, 8) Then
- brr(x) = "放假"
- ElseIf Weekday(arr(x, 1), vbMonday) = 1 Then
- brr(x) = "计划、巡诊"
- ElseIf Weekday(arr(x, 1), vbMonday) = 5 Then
- brr(x) = "小结"
- Else
- brr(x) = ""
- End If
- End If
- Next x
- .Range("E4").Resize(UBound(brr), 1) = Application.Transpose(brr)
- End With
- End Sub
复制代码 |
|