- 帖子
- 354
- 主題
- 5
- 精華
- 0
- 積分
- 387
- 點名
- 0
- 作業系統
- windows7
- 軟體版本
- vba,vb,excel2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2017-1-8
- 最後登錄
- 2024-8-2
 
|
本帖最後由 singo1232001 於 2021-11-3 03:09 編輯
回復 37# PJChen
Sub 刪rows()
f = Columns("A:G").Find("*", , -4163, , 1, 2).Row
dt = [AF1]
Dim x1 As Range, x As Range
For i = 3 To f
If DateValue(Cells(i, 2)) >= DateValue(dt) And Cells(i, 3) <> "美" Then
Set x = Rows(i)
If x1 Is Nothing Then Set x1 = x
If Not x1 Is Nothing Then Set x1 = Union(x1, x)
End If
Next
If Not x1 Is Nothing Then x1.Delete
End Sub
另外補充之前提到的問題建議 可讓過程與程式乾淨簡潔
1.建議用兩個日期判斷起始與結束 當前只有一個
2.原始檔案不建議做任何修改 建議vba產生的所有步驟(新修刪改) 將資料複製處理 放置到一個新增的工作表做處理(至少有原始檔案 避免操作錯誤無法倒回資料初始狀態,而且還可以做前後比對 效率提升)
3.原始資料(北區)不建議放公式 但新增的工作表可以放
VBA也會好寫很多 |
|