Re: [算表] 某欄位的值小於10就自動刪除某一行的問題

看板Office作者 ( 4X)時間15年前 (2011/02/06 17:00), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
Sub A1() Dim e As Integer e = Cells(1, 1).End(xlDown).Row For i = 1 To e f = Cells(i, 1).Value If Application.And(f < 5, f <> "") Then Cells(i, 1).EntireRow.Delete i = i - 1 End If Next i End Sub ──────────────────────── 裡面的"5"改"10"應該就是您所要的內容。 "e"是用來自動偵測資料長度,前提是A1那格必須要跟後續資料貼在一起, 否則會出包,需自行修改。 採用"AND"是因為我自己電腦會遇到空格也當作是值, 陷入無限迴圈(永遠符合If條件),所以多一道判讀「非空值(<> "")」。 希望有幫助到你。 ──────────────────────── ※ 引述《dgun (Dgun)》之銘言: : 軟體: excel : 版本: 2003 : Sub marco() : For i = 1 To 50 : With Cells(i, 1) : If .Value < 10 Then Rows((i) & ":" & (i)).EntireRow.Delete Shift:=xlUp : End With : Next i : End Sub : 小弟剛開始學習使用VBA 首先有個問題 就是上述的條件 : A : 1 10 : 2 8 : 3 15 : 4 7 : 5 6 : 6 7 : 7 20 : 我執行以後會遇到一個問題 : A4 整行刪除了 所以A5整行會向上遞補 但是程式已經去檢查A5(也就是原來的A6) : 以至於A5那一行沒有刪除到 : 請問有什麼方法可以解決的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.220.82

02/06 23:22, , 1F
我的想法是回圈內符合條件的加到Range, 迴圈後再一次刪除
02/06 23:22, 1F

02/06 23:55, , 2F
這好像也不錯,先開個陣列存,嗯,樓上這招妙!
02/06 23:55, 2F

02/07 02:05, , 3F
嗯~不太懂 在迴圈加上RANGE 不過樓上的回答讓我受益良多
02/07 02:05, 3F
文章代碼(AID): #1DJcCoPd (Office)
文章代碼(AID): #1DJcCoPd (Office)