- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 82
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-4-6
               
|
7#
發表於 2010-11-27 18:32
| 只看該作者
回復 1# naraohya
不知道有沒有理解錯誤
直接讓D欄記住第一次B欄選PD時的日期(這用CHANGE事件來輸入C,D欄的值)
Sheet3模組- Private Sub Worksheet_Change(ByVal Target As Range)
- If Target.Count > 1 Then Exit Sub
- If Intersect(Target, [B3:B100]) Is Nothing Or Target = "" Then Exit Sub
- Application.EnableEvents = False
- If Target.Offset(, 1) = "" Then Target.Offset(, 1).Resize(, 2) = Array(IIf(Target = "PD", 1, ""), IIf(Target = "PD", Date, ""))
- Application.EnableEvents = True
- End Sub
複製代碼 每次開檔時計算D欄日期到當日的天數並更改D欄為當日日期- Private Sub Workbook_Open()
- Dim A As Range
- With Sheet3
- Application.EnableEvents = False
- For Each A In .[B3:B100]
- If A = "PD" And IsDate(A.Offset(, 2)) Then _
- A.Offset(, 1) = _
- DateDiff("d", A.Offset(, 2), Date) + A.Offset(, 1): A.Value = "CL": A.Offset(, 2) = Date
- Next
- Application.EnableEvents = True
- End With
- End Sub
複製代碼
計算pending day.zip (11.84 KB)
|
|