Lọc dữ liệu từ sheet này sang sheet khác bằng VBA?? (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

smppacking

Thành viên mới
Tham gia
16/12/22
Bài viết
5
Được thích
2
em là thành viên mới ạ
nhờ các anh chị hướng dẫn em vấn đề này
em có file đính kèm muốn lọc dữ liệu từ sheet này về sheet khác giống như hàm Filter trên office365
do cty có nhiều máy đang chạy excel2010 trở về trước nên không chạy hàm Filter đc
nên nhờ các anh chị viết giúp em code thay thế hàm Filter ạ.
cụ thể mình dùng hàm để lọc và đưa mảng dữ liệu A2:D7 từ sheet A sang sheet B vào ô A2 với điều kiện sheetA!E2:E7="QC"
 

File đính kèm

Lần chỉnh sửa cuối:
em là thành viên mới ạ
nhờ các anh chị chỉ giáo em vấn đề này
em có file đính kèm muốn lọc dữ liệu từ sheet này về sheet khác giống như hàm Filter trên office365
do cty có nhiều máy đang chạy excel2010 trở về trước nên không chạy hàm Filter đc
nên nhờ các cao nhân viết giúp em code thay thế hàm Filter ạ.
cụ thể mình dùng hàm để lọc và đưa mảng dữ liệu A2:D7 từ sheet A sang sheet B vào ô A2 với điều kiện sheetA!E2:E7="QC"
Bạn sửa nội dung như #2 đề cập và chạy code dưới
PHP:
Sub Loc()
    Dim Arr(), Res(), i&, k&, a&
    With Sheets("SHEET1")
        Arr = .Range("A2:E7").Value
        ReDim Res(1 To UBound(Arr), 1 To 3)
        For i = 1 To UBound(Arr)
            If Arr(i, 5) = "QC" Then
                k = k + 1
                For a = 1 To 3
                    Res(k, a) = Arr(i, a)
                Next a
            End If
        Next i
    End With
    Sheets("SHEET2").Range("E2").Resize(k, 3).Value = Res
End Sub
 
Bạn sửa nội dung như #2 đề cập và chạy code dưới
PHP:
Sub Loc()
    Dim Arr(), Res(), i&, k&, a&
    With Sheets("SHEET1")
        Arr = .Range("A2:E7").Value
        ReDim Res(1 To UBound(Arr), 1 To 3)
        For i = 1 To UBound(Arr)
            If Arr(i, 5) = "QC" Then
                k = k + 1
                For a = 1 To 3
                    Res(k, a) = Arr(i, a)
                Next a
            End If
        Next i
    End With
    Sheets("SHEET2").Range("E2").Resize(k, 3).Value = Res
End Sub
Cảm ơn bác ạ!!
nhưng code này em copy sang file chính thức sửa tham chiếu lại nhưng không chạy được..
bác giúp em hoàng chình code với ạ
copy từ sheet DLGD!A6:G1003 sang sheet QC!A7:G500 với điều kiện H6:H1003="QC"
bác giúp em với ạ!!
 

File đính kèm

PHP:
Sub Loc()
    Dim Arr(), Res(), I&, K&, A&
    Dim Chep As String
   
    With Sheets("DLGH")
        Arr = .Range("A6").CurrentRegion.Value
        ReDim Res(1 To UBound(Arr), 1 To 5)
        For I = 1 To UBound(Arr)
            If Arr(I, 5) = "QC" Then
                K = K + 1
                For A = 1 To 5
                    Res(K, A) = Arr(I, A)
                Next A
            End If
        Next I
    End With
    If K Then
        Chep = InputBox("Ban Thích Chép Nôi Hay Chép Mói?", "GPE.COM", "N")
        If Chep = "M" Then
           
        ElseIf Chep = "N" Then
               
        Else
            MsgBox "Ngu Quá Xá!"
        End If
    End If
End Sub
 
Lần chỉnh sửa cuối:
. . . . . . . . .
nhưng code này em copy sang file chính thức sửa tham chiếu lại nhưng không chạy được..
. . . . . . . . .
Không chạy được là sao sau đây:
(1) Nó bất động do thiếu nguồn năng?
(2) Nó chạy 1 cách trơn tuột, không thấy kết quả ở đâu cả?
(3) Nó chạy được nhưng lại không cho ra kết quả vào đúng chổ theo yêu cầu!
(4) Nó trỏ chứng phản ứng lại & chưỡi đổng!
(5) Gì gì khác mà chưa mô tả bên trên?
. . . . . .
[Khiếm nhã với người có thiện ý giúp mình vì không (muốn) nêu lý do chưa thỏa của sự giúp]
 
...(4) Nó trỏ chứng phản ứng lại & chưỡi đổng!
...
Đừng có nhắc thêm cái vụ chổng đưởi chứ ông bạn vàng.
Đến đây người ta chỉ mới làm các công việc sau:
- Từ ngữ tiên, ngoại lai.
- Viết tắt
- Không tuân thủ văn phạm tiếng mẹ đẻ.
- Không biết phân biệt thế nào là văn phạm và thế nào là chính tả.

Nhưng đó chỉ là chuyện viết. Về khả năng làm việc thì có thêm tính chất đầu gà đít vịt:
- Trong cùng bài #1, mở đầu là nhờ hướng dẫn (dí chảo), cuối cùng thì kết lại là nhờ viết code giùm.
- Qua đến bài #10 mới chính thức xác định là xin code.

Bản tinh soi mói tỉ mỉ của tôi giúp cho tôi tỉ mỉ về giải quyết vấn đề. Nhất là côt kiếc bị lỗi chỗ nào thì chỉ có xem tỉ mỉ mới tìm ra.
Vì vậy đối với người khác là tính xấu vặt vãnh soi mói. Đối với tôi là cách thử thách người hỏi bài có đủ kiên nhẫn và chịu khó chú tâm khi đối diện với vấn đề hay không.
 
CHO AI CẦN
Cảm ơn bác Ronaldinho7

PHP:
Option Explicit

Sub TEN_MODULE

    Dim Arr(), Res(), i&, j&, Lr&, k&

    With Sheets("SHEET DU LIEU NGUON")

        Lr = .Range("A" & Rows.Count).End(xlUp).Row

        Arr = .Range("A6:H" & Lr).Value

        ReDim Res(1 To UBound(Arr), 1 To 7)

        For i = 1 To UBound(Arr)

            If Arr(i, 8) = "DIEU KIEN CAN LOC" Then

                k = k + 1

                For j = 1 To 7

                    Res(k, j) = Arr(i, j)

                Next j

            End If

        Next i

        End With

    With Sheets("SHEET CAN DAN DU LIEU")

        .Unprotect Password:="PASS"

        .Range("A1:G10000").ClearContents

        If k Then

            .Range("A7").Resize(k, 7).Value = Res

            .Protect Password:="PASS"

        End If

    End With

    MsgBox "CAP NHAT DU LIEU THANH CONG"

End Sub
Bài đã được tự động gộp:

mình mới vào nhóm chưa hiểu cách hoạt động của fage
chỉ mỗi 2 từ chỉ giáo với cao nhân thôi mà cũng bắt bẻ.
nói vui cho thoải mái thôi, chả biết các anh vào đây để làm gì??
chắc để bắt bẻ kiểu này kiểu nọ.
 
Lần chỉnh sửa cuối:
. . . . .
PHP:
Sub TEN_MODULE
'   . . . . . . . .   '
    With Sheets("SHEET CAN DAN DU LIEU")
        .Unprotect Password:="PASS"
2        .Range("A1:G10000").ClearContents
        If k Then
 1           .Range("A7").Resize(k, 7).Value = Res
            .Protect Password:="PASS"
        End If
    End With
 3   MsgBox "CAP NHAT DU LIEU THANH CONG"
End Sub
Câu lệnh (được đánh số)1: Là dán dữ liệu (DL) từ mảng thu thập được lên trang tính kể từ dòng 7;
Câu lệnh 2: Xóa 1 vùng gồm vạn dòng kể từ dòng đầu;
Như vậy là đã xoá dòng tiêu đề nếu có (từ dòng 1 đến dòng 6)
Như vậy là DL không có tiêu đề; & đây chắc chủ bài đăng muốn như thể rắn mất đầu!
& xét tiếp câu lệnh mang số 3 là câu báo cáo láo toét!
$$$$@

Hè về.jpg
 
Câu lệnh (được đánh số)1: Là dán dữ liệu (DL) từ mảng thu thập được lên trang tính kể từ dòng 7;
Câu lệnh 2: Xóa 1 vùng gồm vạn dòng kể từ dòng đầu;
Như vậy là đã xoá dòng tiêu đề nếu có (từ dòng 1 đến dòng 6)
Như vậy là DL không có tiêu đề; & đây chắc chủ bài đăng muốn như thể rắn mất đầu!
& xét tiếp câu lệnh mang số 3 là câu báo cáo láo toét!
$$$$@

View attachment 284865
Ai sử dụng thì copy về sửa lại theo mục đích mình cần chứ ạ...
đâu phải dữ liệu dán vào sheet là nhất định phải có tiêu đề???
 
. . . . . .. ..
đâu phải dữ liệu dán vào sheet là nhất định phải có tiêu đề???
Vậy bạn chỉ cần viết câu lệnh chỉ xóa vùng mà bạn sẽ cần dán dữ liệu mới thôi chứ (từ dòng 7 trở đi)
Ai lại xóa những dòng trên dòng 7 làm chi?
 
Web KT

Bài viết mới nhất

Back
Top Bottom