Board logo

標題: [發問] EXCEL 資料表上的資料固定刪除時間 [打印本頁]

作者: v03586    時間: 2015-9-25 00:56     標題: EXCEL 資料表上的資料固定刪除時間

本帖最後由 v03586 於 2015-9-25 00:58 編輯

上篇發文程式目的為收料應用
此份資料為資料庫收料的藍本
上篇發文

但事後想此資料保存的效期不需要永久(EXCEL好像只能記錄6萬多筆資料而已) 外加上公司電腦容量有限

想依照C欄位的時間與現在的時間作推算,超過三個月的資料自動刪除

目前C欄位依照程式碼是帶出輸入時間
假設輸入時間是2015/6/20   比對現在時間2015/9/21
那2015/6/20的資料已經超過3個月效期,不知道資料是否能自動刪除
已確保空間跟執行速度呢?

[attach]22089[/attach]
  1. Sub 輸入()
  2. Dim xR As Range, X, Y, T$, N%
  3. Set xR = Cells(Rows.Count, 2).End(xlUp)(2, 0)
  4.  
  5. T = "請輸入收料OP工號 [ Please enter Operator ID ]"
  6. Do: X = InputBox(T, T)
  7.   If StrPtr(X) = 0 Then Exit Sub  '使用者按〔取消〕跳出
  8. Loop Until X <> ""
  9.  
  10. T = "請輸入MO [ Please enter MO ]"
  11. Do: Y = InputBox(T & ",輸入完畢請按取消鍵", T)
  12.   If StrPtr(Y) = 0 Then GoTo 999  '使用者按〔取消〕結束
  13.   If Y <> "" Then
  14.    xR.Resize(1, 3) = Array(X, Y, Now)
  15.    Set xR = xR(2, 1): N = N + 1
  16.   End If
  17. Loop
  18.  
  19. 999: If N > 0 Then ThisWorkbook.Save
  20. End Sub
複製代碼

作者: 准提部林    時間: 2015-9-25 18:06

超過90天才刪,以獨立程序執行:
  1. Sub 刪除()
  2. Dim R&
  3. R = Application.CountIf([Database!C:C], "<" & Date - 90)
  4. If R > 0 Then [Database!A2:C2].Resize(R).Delete Shift:=xlUp
  5.  
  6. R = Application.CountIf([Database!F:F], "<" & Date - 90)
  7. If R > 0 Then [Database!D2:F2].Resize(R).Delete Shift:=xlUp
  8. End Sub
複製代碼

作者: v03586    時間: 2015-9-26 00:11

回復 2# 准提部林


    感謝版主的回覆!解決了老闆突然丟給我的一個問題.....:handshake




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