NguyenthiH
Thành viên mới đăng ký
- Tham gia
- 11/12/16
- Bài viết
- 965
- Được thích
- 175
- Giới tính
- Nữ
bạn thích dùng code VBA hay công thứcEm nhờ các anh chị giúp em lọc đơn hàng giống như file đính kèm ạ.
Trích dẫn NguyenThiH -" Thành viên mù VBA" lại post bài trong diễn đàn -> Lập trình với excelEm nhờ các anh chị giúp em lọc đơn hàng giống như file đính kèm ạ.
Sub AdvancedFilter()
Sheets("Sheet1").Range("B3").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("B1:B2"), CopyToRange:=Range("A4:H4"), Unique:=False
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B2]) Is Nothing Then
Dim Rws As Long, J As Long, W As Integer, Dm As Integer, Col As Integer
Dim Arr(), Sh As Worksheet
With Sheet1
Rws = .[b4].CurrentRegion.Rows.Count
Arr() = .[b4].Resize(Rws, 10).Value
ReDim dArr(1 To Rws, 1 To 8)
[A5].Resize(Rws, 8).Value = dArr()
For J = 1 To UBound(Arr())
If Target.Value = Arr(J, 4) Then
W = W + 1
For Dm = 1 To 8
If Dm > 2 Then Col = 2 Else Col = 0
dArr(W, Dm) = Arr(J, Dm + Col)
Next Dm
End If
Next J
End With
If W Then
[A5].Resize(W, 8).Value = dArr()
End If
End If
End Sub
Xin lỗi Bác SA_DQ! vì em gõ "po28630", bắt buộc phải gõ "PO28630".
Có cách nào gõ "po28630" cũng ra kết quả vậy Bác.
Hình như bố trí chưa hợp lý ví dụ đơn hàng nhiều hơn 10 dòng thì sao hay tối đa "po" chỉ 5 dòng đổ lạiBác @SA_DQ có thể giúp em code có thể dùng change hai lần được không ạ.
Tức là khi có thay đổi ở cell B2 cũng chạy worksheet_Change, mà có thay đổi ở cell B12 cũng chạy worksheet_change.
Em xin đưa file.
Đó là mã; Mà đã là 'Mã' thì xài đồng loại ký tự hoa; Chuyện này ngừa chuyện lúc cần sắp xếp các mã HHbắt buộc phải gõ "PO28630".Có cách nào gõ "po28630" cũng ra kết quả vậy Bác.
Thế nào là 'change 2 lần'?có thể dùng change hai lần được không ạ.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B2]) Is Nothing Then
XaiChung2SuKien Sheet1, Target.Value
ElseIf Not Intersect(Target, [B12]) Is Nothing Then
XaiChung2SuKien Sheet3, Target.Value
End If
End Sub
Sub XaiChung2SuKien(Sh As Worksheet, MaHH As String)
Sh.Select
MsgBox Sh.Name, ,MaHH
End Sub