Những hàng có giá trị cột A và B giống nhau sẽ khoanh vùng xoá hàng mà giá trị bên cột D không nằm trong khoảng ĐẦU,GIỮA,CUỐI.Thí dụ bên cột D giá trị các hàng là:Không hiểu điều kiện xóa của bạn lắm????
Đúng rồi bác ah,nhưng từ hàng 92 nó có ĐẦU,GIỮA,CUỐI thì giữ nguyên bác ah.Code của bác là nó lại xoá mất khúc GIỮA.Nhờ bác xem lại giúp.Thanks.
Bạn test code này thử xem sao nhéĐúng rồi bác ah,nhưng từ hàng 92 nó có ĐẦU,GIỮA,CUỐI thì giữ nguyên bác ah.Code của bác là nó lại xoá mất khúc GIỮA.Nhờ bác xem lại giúp.Thanks.
Sub DeleteRowsPA2()Dim Arr(), ArrKQ(), Tmp1, Tmp2
Dim i As Long, j As Long
'On Error Resume Next
ReDim ArrKQ(1 To UBound(Arr), 1 To 4)
Application.ScreenUpdating = False
Tmp1 = 0
Tmp2 = 0
For i = Sheet1.[a65500].End(3).Row + 1 To 2 Step -1
If Sheet1.Range("D" & i).Value = 0 And Sheet1.Range("D" & i - 1).Value > 0 Then
Tmp1 = Sheet1.Range("D" & i - 1).Value
End If
If Sheet1.Range("D" & i).Value = Tmp1 And Sheet1.Range("D" & i - 1).Value > 0 Then
Tmp2 = Sheet1.Range("D" & i - 1).Value
End If
If Sheet1.Range("D" & i).Value > 0 And Sheet1.Range("D" & i).Value <> Tmp1 And Sheet1.Range("D" & i).Value <> Tmp2 Then
Sheet1.Range("D" & i).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Bác test lại code giùm e,sao nó không chạy được?Bạn test code này thử xem sao nhé
Mã:Sub DeleteRowsPA2()Dim Arr(), ArrKQ(), Tmp1, Tmp2 Dim i As Long, j As Long 'On Error Resume Next ReDim ArrKQ(1 To UBound(Arr), 1 To 4) Application.ScreenUpdating = False Tmp1 = 0 Tmp2 = 0 For i = Sheet1.[a65500].End(3).Row + 1 To 2 Step -1 If Sheet1.Range("D" & i).Value = 0 And Sheet1.Range("D" & i - 1).Value > 0 Then Tmp1 = Sheet1.Range("D" & i - 1).Value End If If Sheet1.Range("D" & i).Value = Tmp1 And Sheet1.Range("D" & i - 1).Value > 0 Then Tmp2 = Sheet1.Range("D" & i - 1).Value End If If Sheet1.Range("D" & i).Value > 0 And Sheet1.Range("D" & i).Value <> Tmp1 And Sheet1.Range("D" & i).Value <> Tmp2 Then Sheet1.Range("D" & i).EntireRow.Delete End If Next Application.ScreenUpdating = True End Sub
File này thì chạy tốt nhưng khi e đổi số liệu khác là nó chạy không đúng bác ạ.Bác xem giúp e.Thanks.Bạn tải lại file xem sao nhé
Đây bác ah.KQ là cột bôi đỏ.Vậy nếu dữ liệu đúng sẽ là như thế nào so với file bạn vừa gởi lên?
Dữ liệu tổng thể của bạnĐây bác ah.KQ là cột bôi đỏ.
Bạn xem lại mô tả của bạn ở bài 1, chắc chắn có sự nhầm lẫn.Đây bác ah.KQ là cột bôi đỏ.
Dạ 2 bác hiểu lầm ý e rồi.Ngay từ đầu e đã nói đến ĐẦU,GIỮA,CUỐI.Dữ liệu tổng thể của bạn
Nhóm số 0
Nhóm số >0 thứ 1
Nhóm số >0 thứ 2
Nhóm số >0 thứ 3
File đầu tiên bạn bảo xóa Nhóm số >0 thứ 1, bây giờ kết quả bạn lại cần xóa Nhóm số >0 thứ 3 là sao???
Thế bài #11Dạ 2 bác hiểu lầm ý e rồi.Ngay từ đầu e đã nói đến ĐẦU,GIỮA,CUỐI.
Bài 1 có:
0
0
0.697
0.697
1.825
1.825
3.65
3.65
Cái e cần là xóa 0.697 vì ĐẦU là 0,GIỮA là 1.825,CUỐI là 3.65.
1.825 là số nằm giữa 0 và 3.65.Bài 11 phải xóa hàng có giá trị 3.23 và 2.685.Ý e là vậy 2 bác ah.Mong 2 bác giúp e.Cảm ơn 2 bác nhiều.
Số giữa là sô 1.725 mà bác.Số cuối chia cho 2 ra kết quả là số GIỮA bác ah.Cảm ơn bác nhiều.Thế bài #11
Vậy số giữa của bạn là số như thế nào???Bạn có|Bạn cần
0|0|
00|
00|
1,7251,725|
1,7251,725|
1,7251,725|
3,233,45|
3,233,45|
3,233,45|
3,45|
3,45|
3,45
Trời ơi! bạn không nói từ đầu để mất thời gianSố giữa là sô 1.725 mà bác.Số cuối chia cho 2 ra kết quả là số GIỮA bác ah.Cảm ơn bác nhiều.
Sub DeleteRows()
Dim Tmp
Dim i As Long
On Error Resume Next
Application.ScreenUpdating = False
For i = Sheet1.[a65500].End(3).Row + 1 To 2 Step -1
If Sheet1.Range("D" & i).Value = 0 And Sheet1.Range("D" & i - 1).Value > 0 Then
Tmp = Sheet1.Range("D" & i - 1).Value
End If
If Sheet1.Range("D" & i).Value > 0 And Sheet1.Range("D" & i).Value <> Tmp / 2 And Sheet1.Range("D" & i).Value <> Tmp Then
Sheet1.Range("D" & i).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Có thể nó nhiều hơn 4 bác ah,nhưng chỉ cần lấy thằng CUỐI chia cho 2 là được thằng GIỮA,Thằng ĐẦU thì lúc nào cũng là 0 rồi.Bài toán của e thì chỉ cần lấy thằng ĐẦU,GIỮA,CUỐI thôi.Thanks.Hiểu dzồi, nhưng còn cái này nữa
Số lượng nhưng số xuất hiện trong vùng trùng cột A & B có phải chỉ dao động là 3 hoặc 4 không hay nó nhiều hơn 4
Số ở giữa phải đảm bảo luôn luôn có nhé
Híc, bài này hay đây
Code chạy ra KQ sai rồi bác ơi.Bác test lại giùm e với.Thanks.Trời ơi! bạn không nói từ đầu để mất thời gian
Test code này xem sao nhé
Mã:Sub DeleteRows() Dim Tmp Dim i As Long On Error Resume Next Application.ScreenUpdating = False For i = Sheet1.[a65500].End(3).Row + 1 To 2 Step -1 If Sheet1.Range("D" & i).Value = 0 And Sheet1.Range("D" & i - 1).Value > 0 Then Tmp = Sheet1.Range("D" & i - 1).Value End If If Sheet1.Range("D" & i).Value > 0 And Sheet1.Range("D" & i).Value <> Tmp / 2 And Sheet1.Range("D" & i).Value <> Tmp Then Sheet1.Range("D" & i).EntireRow.Delete End If Next Application.ScreenUpdating = True End Sub