[VBA] Copy dữ liệu Excel sang Notepad theo điều kiện

Liên hệ QC

ngoctuyen1995

Thành viên hoạt động
Tham gia
25/4/17
Bài viết
196
Được thích
19
Giới tính
Nữ
Thân chào cả nhà GPEX,
Mong cả nhà giúp em một việc ạ.

Hiện tại em có 01 File data bao gồm 5 cột (nhưng chỉ quan tâm cột A và cột E), em muốn dùng VBA để copy dữ liệu Cột A (Link) từ Excel sang File Notepad theo điều kiện cột E (cột Khu vực) và save thành các file tương ứng với cột E ạ.

Ví dụ: Điều kiện cột E là Khu vực HCMC thì tương ứng với cột A là những link nào thuộc HCMC sẽ tạo ra 01 File Notepad theo dữ liệu đó và Tên File của Khu vực đó.

Em có hình ảnh kết quả và File đính kèm ạ
Mong cả nhà giúp đỡ, em chân thành cảm ơn ạ.
 

File đính kèm

  • Data.zip
    9.8 KB · Đọc: 7
  • Picture 2.JPG
    Picture 2.JPG
    130.8 KB · Đọc: 17
  • Picture 1.JPG
    Picture 1.JPG
    51.9 KB · Đọc: 17
Thân chào cả nhà GPEX,
Mong cả nhà giúp em một việc ạ.

Hiện tại em có 01 File data bao gồm 5 cột (nhưng chỉ quan tâm cột A và cột E), em muốn dùng VBA để copy dữ liệu Cột A (Link) từ Excel sang File Notepad theo điều kiện cột E (cột Khu vực) và save thành các file tương ứng với cột E ạ.

Ví dụ: Điều kiện cột E là Khu vực HCMC thì tương ứng với cột A là những link nào thuộc HCMC sẽ tạo ra 01 File Notepad theo dữ liệu đó và Tên File của Khu vực đó.

Em có hình ảnh kết quả và File đính kèm ạ
Mong cả nhà giúp đỡ, em chân thành cảm ơn ạ.
Bạn xem file đính kèm nha...
 

File đính kèm

  • CopyToNotePad.xlsm
    52.4 KB · Đọc: 12
Upvote 0
Bạn dùng sort? Vậy trong trường hợp người ta không muốn dữ liệu bị xáo trộn sau khi chạy code (mà thường là vậy) thì bạn làm sao?
Dạ, tại vì em muốn nhanh nên sort, không thì chắc mình phải duyệt từng line vậy.
nếu không thì em có thể dùng sheet tạm để sort dữ liệu.
 
Upvote 0
Dạ, tại vì em muốn nhanh nên sort, không thì chắc mình phải duyệt từng line vậy.
nếu không thì em có thể dùng sheet tạm để sort dữ liệu.
Bạn có thể Auto Filter hoặc Advanced Filter kết hợp với Dictionary mà
Cuối cùng, nếu bạn vẫn muốn sort thì hãy copy dữ liệu sang chỗ khác
 
Upvote 0
View attachment 241567
cảm ơn anh đã giúp đỡ, nhưng khi em chạy nó lại báo lỗi như hình ạ
sao ta...??? mình chạy vèo vèo mà???
bạn chỉnh thử:
Mã:
    Sheet1.Sort.SortFields.Add2 Key:=Sheet1.Range("E2:E" & iLastRow), SortOn:=xlSortOnValues, _
                                Order:=xlAscending, DataOption:=xlSortNormal
    With Sheet1.Sort
        .SetRange Sheet1.Range("A1:E" & iLastRow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
Upvote 0
sao ta...??? mình chạy vèo vèo mà???
bạn chỉnh thử:
Mã:
    Sheet1.Sort.SortFields.Add2 Key:=Sheet1.Range("E2:E" & iLastRow), SortOn:=xlSortOnValues, _
                                Order:=xlAscending, DataOption:=xlSortNormal
    With Sheet1.Sort
        .SetRange Sheet1.Range("A1:E" & iLastRow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Sửa vầy thử xem
Mã:
Sheet1.Range("A1:E" & iLastRow).Sort Sheet1.Range("e1"), xlAscending, Header:=xlYes
 
Upvote 0
Bạn có thể Auto Filter hoặc Advanced Filter kết hợp với Dictionary mà
Cuối cùng, nếu bạn vẫn muốn sort thì hãy copy dữ liệu sang chỗ khác
Dạ, để em làm thử như thầy hướng dẫn.
Nhân tiện cho em hỏi tí: cái code mà em viết nó chạy có vẻ không ổn định thì phải.
Nếu chạy Debug thì OK, còn chạy một vèo thì hay bị báo lỗi
khi thì lỗi dòng này: .GetFromClipBoard khi thì lỗi dòng này: strData = .GetText
nhưng lúc nó lỗi thì em không làm gì hết và nhấn F8 thì nó chạy tiếp bình thường????
hic... em botaay cái dzụ này rùi...
Mong thầy giúp em.
Cám ơn thầy nhiều.
 
Upvote 0
Dạ, để em làm thử như thầy hướng dẫn.
Nhân tiện cho em hỏi tí: cái code mà em viết nó chạy có vẻ không ổn định thì phải.
Nếu chạy Debug thì OK, còn chạy một vèo thì hay bị báo lỗi
khi thì lỗi dòng này: .GetFromClipBoard khi thì lỗi dòng này: strData = .GetText
nhưng lúc nó lỗi thì em không làm gì hết và nhấn F8 thì nó chạy tiếp bình thường????
hic... em botaay cái dzụ này rùi...
Mong thầy giúp em.
Cám ơn thầy nhiều.
mới nhấn nhấn gõ gõ bác gúgồ thì phát hiện ra Win7 và cũ hơn thì dùng cái "MSForms.DataObject" copy và lấy từ Clipborad thì OK còn Win sau nó như Win8 ; WIn10 thì Bác Bill không "khuyến khích" sử dụng mà muốn thì phải API trực tiếp!!! hic...
 
Upvote 0
Web KT

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

Back
Top Bottom