- Tham gia
- 23/3/16
- Bài viết
- 705
- Được thích
- 52
Chào cả nhà GPE !
Mình muốn dùng 1 đoạn code để xóa dòng theo số hóa đơn, và sau khi xóa dong phải sort lại theo số hđ luôn. Mình có gửi file các bạn xem giúp mình nhé. thank
Option Explicit
Sub xoa_HD()
Dim Sarr, Rarr(1 To 60000, 1 To 4) As Variant
Dim i, j, k As Long
Dim rng As Range
Sarr = Sheet1.[b2:e60000]
For i = 1 To UBound(Sarr)
If Sarr(i, 1) = "" Then Exit For
If Sarr(i, 1) <> Sheet1.[h3] Then
k = k + 1
For j = 1 To 4
Rarr(k, j) = Sarr(i, j)
Next
End If
Next
If k Then
Application.ScreenUpdating = False
With Sheet1
.[b2:e60000].ClearContents
Set rng = .[b2].Resize(k, 4)
rng.Value = Rarr
With Sheet1.Sort
.SetRange rng
.Header = xlYes
.Apply
End With
End With
End If
End Sub
Chào cả nhà GPE !
Mình muốn dùng 1 đoạn code để xóa dòng theo số hóa đơn, và sau khi xóa dong phải sort lại theo số hđ luôn. Mình có gửi file các bạn xem giúp mình nhé. thank
Sub xoa()
Dim i As Long
For i = 34 To 2 Step -1
If Cells(i, 2) = [H3] Then
Cells(i, 2).EntireRow.Delete
End If
Next i
End Sub
Mã:..... With Sheet1.Sort .SetRange rng .Header = xlYes .Apply End With End With End If End Sub
Lấy dữ liệu đó gõ số 1 vô H3 đi Phong ơi. Code chạy vui lắm.PHP:Sub xoa() Dim i As Long For i = 34 To 2 Step -1 If Cells(i, 2) = [H3] Then Cells(i, 2).EntireRow.Delete End If Next i End Sub
Lấy dữ liệu đó gõ số 1 vô H3 đi Phong ơi. Code chạy vui lắm.
Sub xoa()
Dim i As Long, vung As Range
Set vung = Range("B1")
For i = 2 To 34
If Cells(i, 2) = [H3] Then
Set vung = Union(vung, Cells(i, 2))
End If
Next i
Set vung = Intersect(vung, [B2:B34])
vung.EntireRow.Delete
End Sub
Xóa luôn dữ liệu tại H2 của người ta luôn rồiEm sửa lại thế này không biết còn mắc lỗi gì nữa không:
Mã:Sub xoa() Dim i As Long, vung As Range Set vung = Range("B1") For i = 2 To 34 If Cells(i, 2) = [H3] Then Set vung = Union(vung, Cells(i, 2)) End If Next i Set vung = Intersect(vung, [B2:B34]) vung.EntireRow.Delete End Sub
Xóa luôn dữ liệu tại H2 của người ta luôn rồi. Tóm lại không nên xóa nguyên dòng, lỡ trong sheet đó còn có nhiều dữ liệu khác không nằm trong bảng đấy. Code ở #2 chạy ngon lành rồi mà.
Mã:Option Explicit Sub xoa_HD() Dim Sarr, Rarr(1 To 60000, 1 To 4) As Variant Dim i, j, k As Long Dim rng As Range Sarr = Sheet1.[b2:e60000] For i = 1 To UBound(Sarr) If Sarr(i, 1) = "" Then Exit For If Sarr(i, 1) <> Sheet1.[h3] Then k = k + 1 For j = 1 To 4 Rarr(k, j) = Sarr(i, j) Next End If Next If k Then Application.ScreenUpdating = False With Sheet1 .[b2:e60000].ClearContents Set rng = .[b2].Resize(k, 4) rng.Value = Rarr With Sheet1.Sort .SetRange rng .Header = xlYes .Apply End With End With End If End Sub
PHP:Sub xoa() Dim i As Long For i = 34 To 2 Step -1 If Cells(i, 2) = [H3] Then Cells(i, 2).EntireRow.Delete End If Next i End Sub
PHP:Sub xoa() Dim i As Long For i = 34 To 2 Step -1 If Cells(i, 2) = [H3] Then Cells(i, 2).EntireRow.Delete End If Next i End Sub
Cái ni giống như ta xét vòng 3 trước, cuối là vòng 1Ak anh cho em hỏi chổ
For i = 34 To 2 Step -1 nó có bằng For i = 2 To 34 không vậy ?
tại em mới biết vba sơ sơ anh thông cảm mây câu hỏi ngu người của em
Sub xoa()Ak anh cho em hỏi chổ
For i = 34 To 2 Step -1 nó có bằng For i = 2 To 34 không vậy ?
tại em mới biết vba sơ sơ anh thông cảm mây câu hỏi ngu người của em
Sub xoa()
Dim i As Long
For i = 2 To 34 If Cells(i, 2) = [H3] Then
Cells(i, 2).EntireRow.Delete
i=i-1
End If
Next i
End Sub
Ak anh cho em hỏi chổ
For i = 34 To 2 Step -1 nó có bằng For i = 2 To 34 không vậy ?
tại em mới biết vba sơ sơ anh thông cảm mây câu hỏi ngu người của em
Chỉ dùng để trả lời bạn Minhtuan55 thôi, cách của bạn chuẩn hơnCái này nếu xóa dòng có số hợp đồng là 1. Khi cho i chạy từ 2 đến 34, i = 2 thỏa mãn thì thực hiện xóa dòng .. sau
đó i = i-1 vầy i = 1 à bạn, mà trong khi vòng lặp bạn cho bắt đầu từ 2 mà