Thu Marco

  • Thread starter Thread starter yome
  • Ngày gửi Ngày gửi
Liên hệ QC

yome

GPE thật tuyệt vời
Tham gia
9/5/08
Bài viết
347
Được thích
113
Chào anh chị! Em muốn hỏi là với dữ liệu có sẵm thì có cách nào thu được Marco không ah?
Giả sử em có một sheet dữ liệu có sẵn và bây giờ em muốn ghi lại marco? Xin chi dùm em?

Cụ thể là: (file em gửi kèm) có cả câu hỏi cụ thể. thanks
Xin chỉ dùm em! Thanks
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Bạn có thể dùng AutoFilter được mà
Bạn xem File này đúng ý bạn chưa nhé.

Cách thu:
Đầu tiên bạn thu macro AutoFilter với giá trị bất kỳ, được đoạn code như sau:

Mã:
Sub Macro1()
    Selection.AutoFilter Field:=2, Criteria1:="SP001"
End Sub

Sau đó bạn sửa lại như sau là được

Mã:
Sub Macro1()
Selection.AutoFilter Field:=2, Criteria1:=Range("D6").Value
End Sub

Thân!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Hình như code dư 2 hàng này hả bạn, bạn ấy chỉ yêu cầu lọc mã SP thôi mà, mình bỏ 2 dòng đó đi thì lọc được rồi.
Mã:
'Range("C9").Select
'Selection.AutoFilter Field:=2
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có thể dùng AutoFilter được mà
Bạn xem File này đúng ý bạn chưa nhé.

Cách thu:
Đầu tiên bạn thu macro AutoFilter với giá trị bất kỳ, được đoạn code như sau:

Mã:
Sub Macro1()
    Selection.AutoFilter Field:=2, Criteria1:="SP001"
End Sub
Sau đó bạn sửa lại như sau là được

Mã:
Sub Macro1()
Selection.AutoFilter Field:=2, Criteria1:=Range("D6").Value
End Sub
Thân!
Sau khi thu macro xong, chỉnh lại thế này sẽ "tự động" cao hơn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$D$6" Then
    With Range("A11").CurrentRegion
      .AutoFilter 2, IIf(Target = "", "<>", Target)
    End With
  End If
End Sub
 

File đính kèm

Upvote 0
Nếu em muốn lọc cột đơn giá thì code này phải sửa như thế nào:
PHP:
Sub Macro1()
Selection.AutoFilter Field:=2, Criteria1:=Range("D6").Value
End Sub
Em đã thử nhưng không được. Vậy phải thay đổi .Value bằng gì để lọc được? Thanks
 
Upvote 0
Nếu em muốn lọc cột đơn giá thì code này phải sửa như thế nào:
PHP:
Sub Macro1()
Selection.AutoFilter Field:=2, Criteria1:=Range("D6").Value
End Sub
Em đã thử nhưng không được. Vậy phải thay đổi .Value bằng gì để lọc được? Thanks
Đếm từ trái qua phải thì cột Mã SP là cột 2 (nên trong code có Field:=2)... còn cột Đơn giá là cột thứ 6... vậy phải sửa Field:=6
Bạn thử xem
Còn đoạn Criteria1:=Range("D6").Value : có nghĩa là D6 chính là nơi bạn gõ điều kiện vào ---> Nếu bạn muốn đặt điều kiện nằm ở 1 cell nào khác thì sửa đoạn này lại cho phù hợp
 
Upvote 0
ndu ơi, em sửa file đó thế này anh xem và chỉ cho em chỗ em làm sai nhé!
 

File đính kèm

Upvote 0
Thử viết như vầy xem!
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$D$6" Then
    With Range("A11").CurrentRegion
      .AutoFilter 6, IIf(Target = "", "<>", Format(Target, "#,##0"))
    End With
  End If
End Sub
Thân.
 
Upvote 0
ndu ơi, em sửa file đó thế này anh xem và chỉ cho em chỗ em làm sai nhé!
Sửa như anh Po là đúng rồi... Tôi nói thêm cho bạn hiểu: Điều kiện trong AutoFilter vừa phải đúng giá trị, vừa phải đúng định dạng nữa đấy (nếu không nó cóc chạy)
Bạn cứ thử định dạng lại cột đơn giá thành General thì code tôi sẽ chạy, còn code anh Po lại tịt ngòi
Ẹc... Ẹc...
 
Upvote 0
Nói thêm là trong vùng dữ liệu phải định dạng giống nhau nếu mỗi dòng mỗi kiểu thì nó cũng cóc chạy luôn đó?
Khakhàkhà!!!!!
Thân.
 
Upvote 0
Tóm lại:
Tại Cell D6 làm cái list của SP thì "cóc" nào cũng chạy. khẹc..khẹc

Yome bạn làm như sau
1. Bạn tạo Name:
MaSP=OFFSET(Sheet1!$B$12:$B$65000,,,COUNTA(Sheet1!$B$12:$B$65000),)
(công thức này mình học của anh ndu96081631)

2. Tại Cell D6 bạn dùng Validation tạo List =MaSP

Sau đó chọn thoải mái

Thân!
 
Upvote 0
Tóm lại:
Tại Cell D6 làm cái list của SP thì "cóc" nào cũng chạy. khẹc..khẹc

Yome bạn làm như sau
1. Bạn tạo Name:
MaSP=OFFSET(Sheet1!$B$12:$B$65000,,,COUNTA(Sheet1!$B$12:$B$65000),)
(công thức này mình học của anh ndu96081631)

2. Tại Cell D6 bạn dùng Validation tạo List =MaSP

Sau đó chọn thoải mái

Thân!
Lọc với Mã SP thì làm cái này được... còn với cột đơn giá thì chưa chắc ---> Vẫn có liên quan đến Format Cell: Nếu cột Đơn giá Format theo dạng #,##0 còn D6 lại Format General thì nó cũng.. cóc chạy luôn
 
Upvote 0
Tôi thường xuyên sử dụng AutoFilter, cứ tưởng là đơn giản vậy mà trưa nay thử mãi bài này cóc được thì ra là tại dữ liệu khác nhau bởi Format dạng #,##0 và General.

Cảm ơn NduPo_pikachu đã chia xẻ kinh nghiệm này !

P/s: Bài này nhiều cóc quá nhưng cóc này không chữa còi xương mà là chữa còi bên trong...xương sọ.
 
Upvote 0
Web KT

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

Back
Top Bottom