Dùng VBA lọc dữ liệu theo nhiều điều kiện từ 1 file rồi lấy kết quả dán vào 1 file khác
-
Dùng VBA lọc dữ liệu theo nhiều điều kiện từ 1 file rồi lấy kết quả dán vào 1 file khác
- Em có 1 file tổng hợp, em muốn tạo 1 nút bấm cập nhật report để khi click vào nó sẽ hiện lên 1 bảng hỏi đường dẫn của file report, mình chỉ đường dẫn tới thì nó sẽ mở file report ra, lọc theo điều kiện như sau, sau khi lọc xong, sẽ copy vài cột dữ liệu trong file report (không copy toàn bộ) và dán qua file tổng hợp.
-
Hiện nay , trong file tổng hợp, em phải tạo ra 1 sheet report phụ, mỗi khi có report từ văn phòng chính gởi xuống, em copy toàn bộ nguyên sheet, paste qua sheet report phụ, rồi dùng thêm 1 cột phụ để lọc, rồi dùng hàm vlookup để lấy dữ liệu qua sheet tổng hợp. Cách làm này rất thủ công.
Mặt khác do dữ liệu trong file report rất lớn (gần 20.000 hàng) nên file chạy bằng cách này rất nặng và chậm, đôi khi treo máy luôn.
Nhờ mọi người hướng dẫn dùng VBA để file chạy nhanh và nhẹ hơn. Nếu dùng code VBA, em nghĩ có lẽ sẽ không cần dùng thêm 1 sheet report phụ, cũng không cần dùng cách vlookup cho 20.000 hàng và 15 cột.
Điều kiện để lọc :
1 . Nhìn trong file report, cột G (Location), nếu có các chữ sau thì bỏ hàng đó, không lấy : ACE , ATD , BAN , CMD , ZPC
2. Nhìn trong file report, cột B (Status), nếu có chữ Cancelled thì bỏ hàng đó, không lấy.
3. Nhìn trong file report, cột D (Class Type), nếu có chữ AR hoặc UL thì lấy hàng đó, còn lại bỏ hết, không lấyThực hành: Chạy code sau để thực hiện yêu cầu
Sub GPE() Dim cn As Object, rs As Object Dim eRow&, Sql$ With Sheets("Tong Hop") eRow = .Range("A" & Rows.Count).End(xlUp).Row If eRow > 2 Then .Range("A3:N" & eRow).Clear End With With Application.FileDialog(msoFileDialogFilePicker) .Filters.Add "All Excel", "*.xls*" .AllowMultiSelect = False .Show If .SelectedItems.Count Then On Error Resume Next Set cn = CreateObject("adodb.connection") cn.Open ("provider=Microsoft.ACE.OLEDB.12.0;data source=" & .SelectedItems(1) & ";mode=Read;extended properties=""Excel 12.0;hdr=no"";") Sql = "select f1,f5,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19 from [Page 1$A6:S] " & _ "where f2 not like ""Cancelled"" and (left(f4,2)= ""AR"" or left(f4,2)= ""UL"") " & _ "and not (left(f7,3)= ""ACE"" or left(f7,3)= ""ATD"" or left(f7,3)= ""BAN"" or left(f7,3)= ""CMD"" or left(f7,3)= ""ZBC"") " Set rs = cn.Execute(Sql) If Not rs.EOF Then Sheets("Tong Hop").Range("A3").CopyFromRecordset rs rs.Close: cn.Close Set rs = Nothing: Set cn = Nothing On Error GoTo 0 End If End With End Sub
CÁC TIN KHÁC
-
Xử lý giữ liệu trên Pivot Table
-
Facebook tung tính năng "hẹn hò" tại Việt Nam, bạn đã sẵn sàng dùng thử?
-
Hướng dẫn cách Crack Office 2013 Thành Công 100%
-
Chia sẻ key office 2010 professional plus mới nhất
-
fbclid là gì?
-
Cách trang trí văn phòng mùa giáng sinh
-
Thiết kế văn phòng mùa Giáng sinh
-
Lượng tìm kiếm 'xem Asiad ở đâu' tăng mạnh trên Google
-
Top 10 công ty thiết kế website chuyên nghiệp uy tín tại TPHCM
-
omnichannel là gì
-
Samsung Pay tích hợp thanh toán vào website
-
lập website bán hàng
-
Phần mềm thiết kế web
-
Công ty làm web
-
thiết kế web theo yêu cầu tphcm
-
Thiết kế web theo mẫu có sẵn
-
Công ty thiết kế website hàng đầu việt nam | TPhcm
-
Trân Chiến Cung Tên - Môn chơi mới của giới trẻ đã có mặt tại quận 7 tphcm
-
Hướng dẫn tạo web kinh doanh online miễn phí
-
Tạo shop bán hàng thời trang trên facebook nhanh chóng hiệu quả 100%
-
Du lịch biển đảo dịp hè cần chuẩn bị những gì
-
Thiết kế web 100 đô hay 500 đô
-
Làm sao để tăng like trên facebook
-
Hướng dẫn SEO web của bạn lên google hiệu quả bền vững
-
Hướng dẫn download phần mềm photoshop cs6 miễn phí
-
hướng dẫn xây dựng email theo tên miền miễn phí với zoho mail
-
Công cụ marketing online hiệu quả mạnh mẽ
-
Hướng dẫn thủ tục thông báo, đăng ký web TMDT với Bộ Công Thương TPHCM
-
Khám phá ngôi làng tuyết phủ dưới 10°C lần đầu tiên xuất hiện tại TP.HCM
-
Đi đâu, ăn gì dịp Noel tại Sài Gòn