Xin giúp đỡ về code autofilter VBA

  • Thread starter toanvsp
  • Ngày gửi
T

toanvsp

Guest
3/1/17
2
0
1
46
Mình mới tham gia VBA nhưng có tình huống này chưa biết xử lý thế nào rất mong mọi người giúp đỡ chỉnh sửa giúp. Mình có tình huống sau:
Đầu tiên mịnh tạo lệnh autofilter với điều kiện lọc "chua co thiet ke" ở cột 18, sau khi thỏa mãn điều kiện này thì tiếp tục lọc điều kiện ở cột 14 là "Kg" sau đó copy các dữ liệu thỏa mãn các điều kiện lọc để paste sang sheet khác rồi lại quay lại lọc với điều kiện là "M2" ở cột 14
Mình có tình huống như thế này và bị báo lỗi:
+Khi điều kiện lọc ở cột 14 không thỏa mãn tức là không có dữ liệu "Kg" thì bị báo lỗi.
Do vậy mình nhờ anh em giúp đỡ hoàn thiện giúp mình:
Nếu điều kiện lọc thứ nhất "Kg" trong cột thứ 14 không thỏa mãn thì bỏ qua và hủy lệnh lọc tiếp tục quay lại điều kiện lọc thứ 2 là "Kg" trong cột 14, nếu thỏa mãn thì thực hiện lệnh copy...
mình gửi mã code dười đây mong anh em và mọi người giúp đỡ
Sheets("Bang_TH_gui_NIPI").Select
Range("A9:Q300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A9").Select
Sheets("TK_DTDTH").Select
ActiveSheet.Range("A8:R300").AutoFilter Field:=18, Criteria1:= _
"Chua co TK"
ActiveSheet.Range("A8:R300").AutoFilter Field:=14, Criteria1:="Kg"
Range("B9:R300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Bang_TH_gui_NIPI").Select
ActiveSheet.Paste
Range("A9").Select
Selection.End(xlDown).Offset(1, 0).Select
Sheets("TK_DTDTH").Select
Application.CutCopyMode = False
ActiveSheet.Range("A8:R300").AutoFilter Field:=14, Criteria1:="M2"
Range("B9:R300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Bang_TH_gui_NIPI").Select
ActiveSheet.Paste
Range("A9").Select
Selection.End(xlDown).Offset(1, 0).Select
Sheets("TK_DTDTH").Select
Application.CutCopyMode = False
ActiveSheet.Range("A8:R300").AutoFilter Field:=14
ActiveSheet.Range("A8:R300").AutoFilter Field:=18, Criteria1:= _
"Chua co DT"
Range("B9:R300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Bang_TH_gui_NIPI").Select
ActiveSheet.Paste
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets("TK_DTDTH").Select
Application.CutCopyMode = False
ActiveSheet.Range("$A8:$R300").AutoFilter Field:=18

xin cám ơn mọi người trước nhá.
 
Khóa học Quản trị dòng tiền
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
Mình mới tham gia VBA nhưng có tình huống này chưa biết xử lý thế nào rất mong mọi người giúp đỡ chỉnh sửa giúp. Mình có tình huống sau:
Đầu tiên mịnh tạo lệnh autofilter với điều kiện lọc "chua co thiet ke" ở cột 18, sau khi thỏa mãn điều kiện này thì tiếp tục lọc điều kiện ở cột 14 là "Kg" sau đó copy các dữ liệu thỏa mãn các điều kiện lọc để paste sang sheet khác rồi lại quay lại lọc với điều kiện là "M2" ở cột 14
Mình có tình huống như thế này và bị báo lỗi:
+Khi điều kiện lọc ở cột 14 không thỏa mãn tức là không có dữ liệu "Kg" thì bị báo lỗi.
Do vậy mình nhờ anh em giúp đỡ hoàn thiện giúp mình:
Nếu điều kiện lọc thứ nhất "Kg" trong cột thứ 14 không thỏa mãn thì bỏ qua và hủy lệnh lọc tiếp tục quay lại điều kiện lọc thứ 2 là "Kg" trong cột 14, nếu thỏa mãn thì thực hiện lệnh copy...
mình gửi mã code dười đây mong anh em và mọi người giúp đỡ
Sheets("Bang_TH_gui_NIPI").Select
Range("A9:Q300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A9").Select
Sheets("TK_DTDTH").Select
ActiveSheet.Range("A8:R300").AutoFilter Field:=18, Criteria1:= _
"Chua co TK"
ActiveSheet.Range("A8:R300").AutoFilter Field:=14, Criteria1:="Kg"
Range("B9:R300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Bang_TH_gui_NIPI").Select
ActiveSheet.Paste
Range("A9").Select
Selection.End(xlDown).Offset(1, 0).Select
Sheets("TK_DTDTH").Select
Application.CutCopyMode = False
ActiveSheet.Range("A8:R300").AutoFilter Field:=14, Criteria1:="M2"
Range("B9:R300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Bang_TH_gui_NIPI").Select
ActiveSheet.Paste
Range("A9").Select
Selection.End(xlDown).Offset(1, 0).Select
Sheets("TK_DTDTH").Select
Application.CutCopyMode = False
ActiveSheet.Range("A8:R300").AutoFilter Field:=14
ActiveSheet.Range("A8:R300").AutoFilter Field:=18, Criteria1:= _
"Chua co DT"
Range("B9:R300").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Bang_TH_gui_NIPI").Select
ActiveSheet.Paste
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets("TK_DTDTH").Select
Application.CutCopyMode = False
ActiveSheet.Range("$A8:$R300").AutoFilter Field:=18

xin cám ơn mọi người trước nhá.
NHìn cái này thì giống như bạn record Macro thì phải
 
T

toanvsp

Guest
3/1/17
2
0
1
46
một phần filter thoi nhung chua hoan thien
 

Xem nhiều

Webketoan Zalo OA