[Help] VBA nối cột và coppy luôn giá trị của cột (1 người xem)

Liên hệ QC

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

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ó một đoạn code, nhiệm vụ của code là nối các cột B,C,D ở sheet Package Input thành 01 cột ở sheet T_Raw_DF...

vấn đề em đang gặp phải là khi code chạy thì nó lại không copy luôn các vùng mà em đã tô màu,... Vậy mong cả nhà giúp em sửa lại code nhé... Khi code chạy thì lấy luôn các vùng mà em đã tô màu ạ..

Em chân thành cảm ơn ạ..!
Mong cả nhà giúp đỡ
 

File đính kèm

Lần chỉnh sửa cuối:
Thân chào cả nhà GPEX!
Mong cả nhà giúp em một việc ạ..

Hiện tại em có một đoạn code, nhiệm vụ của code là nối các cột B,C,D ở sheet Package Input thành 01 cột ở sheet T_Raw_DF...

vấn đề em đang gặp phải là khi code chạy thì nó lại không copy luôn các vùng mà em đã tô màu,... Vậy mong cả nhà giúp em sửa lại code nhé... Khi code chạy thì lấy luôn các vùng mà em đã tô màu ạ..

Em chân thành cảm ơn ạ..!
Mong cả nhà giúp đỡ
Mình thấy nó copy đủ qua mà. có thiếu cái nào đâu.
 
Upvote 0
E muốn copy luôn màu nền ạ
Thì dùng code copy và paste thôi. Ví dụ:
Mã:
Sub Noi_Cot()
  Dim rngSource As Range, rngTarget As Range
  Dim n As Long
  Set rngSource = Sheets("Package Input").Range("B2:D1000")
  For n = 1 To rngSource.Columns.Count
    Set rngTarget = Sheets("T_Raw_DF").Range("A60000").End(xlUp)
    rngSource.Columns(n).Copy rngTarget.Offset(IIf(rngTarget.Row = 1, 0, 1))
  Next
End Sub
 
Upvote 0
Thì dùng code copy và paste thôi. Ví dụ:
Mã:
Sub Noi_Cot()
  Dim rngSource As Range, rngTarget As Range
  Dim n As Long
  Set rngSource = Sheets("Package Input").Range("B2:D1000")
  For n = 1 To rngSource.Columns.Count
    Set rngTarget = Sheets("T_Raw_DF").Range("A60000").End(xlUp)
    rngSource.Columns(n).Copy rngTarget.Offset(IIf(rngTarget.Row = 1, 0, 1))
  Next
End Sub

Em cảm ơn Thầy đã giúp đỡ em ạ... code thì copy được màu nền rồi ạ.. Nhưng khi em thử xoá 02 giá trị của ô C3, C4 thì các giá trị lại không tự động nối lại ạ... Ý của em là: khi code chạy thì nối các giá trị từ B tới D lại thành 01 cột, những giá trị bị blank thì bỏ qua..

Mong Thầy giúp đỡ ạ
 

File đính kèm

Upvote 0
Nhưng khi em thử xoá 02 giá trị của ô C3, C4 thì các giá trị lại không tự động nối lại ạ... Ý của em là: khi code chạy thì nối các giá trị từ B tới D lại thành 01 cột, những giá trị bị blank thì bỏ qua..
Cái "nhưng" và cái "Ý của em là" lần sau mình nêu ở ngay bài đầu tiên nhá. Như thế thì sẽ thuận tiện đủ điều.

Còn cái "nhưng... Ý của em là..." lần này thì chờ hên xui... :D
 
Upvote 0
Cái "nhưng" và cái "Ý của em là" lần sau mình nêu ở ngay bài đầu tiên nhá. Như thế thì sẽ thuận tiện đủ điều.

Còn cái "nhưng... Ý của em là..." lần này thì chờ hên xui... :D
Dạ! E cảm ơn a vì đã góp ý ạ, e sẽ rút kinh nghiệm ạ
 
Upvote 0
Em cảm ơn Thầy đã giúp đỡ em ạ... code thì copy được màu nền rồi ạ.. Nhưng khi em thử xoá 02 giá trị của ô C3, C4 thì các giá trị lại không tự động nối lại ạ... Ý của em là: khi code chạy thì nối các giá trị từ B tới D lại thành 01 cột, những giá trị bị blank thì bỏ qua..

Mong Thầy giúp đỡ ạ
Thế sao không nói sớm từ đâu
Sửa đoạn này:
Mã:
rngSource.Columns(n).Copy rngTarget.Offset(IIf(rngTarget.Row = 1, 0, 1))
Thành vầy:
Mã:
rngSource.Columns(n).SpecialCells(2).Copy rngTarget.Offset(IIf(rngTarget.Row = 1, 0, 1))
là được rồi!
Nếu dữ liệu nguồn có chứa công thức thì lại khác à nha!
 
Upvote 0
Thế sao không nói sớm từ đâu
Sửa đoạn này:
Mã:
rngSource.Columns(n).Copy rngTarget.Offset(IIf(rngTarget.Row = 1, 0, 1))
Thành vầy:
Mã:
rngSource.Columns(n).SpecialCells(2).Copy rngTarget.Offset(IIf(rngTarget.Row = 1, 0, 1))
là được rồi!
Nếu dữ liệu nguồn có chứa công thức thì lại khác à nha!
Em cảm ơn Thầy đã giúp đỡ ạ....
Em vẫn còn một thắc mắc nữa ạ.. Khi em xoá mất một cột D đi thì code nó lại báo lỗi không chạy được ạ..

Mong Thầy giúp đỡ em, em cảm ơn ạ..
 
Upvote 0
Em cảm ơn Thầy đã giúp đỡ ạ....
Em vẫn còn một thắc mắc nữa ạ.. Khi em xoá mất một cột D đi thì code nó lại báo lỗi không chạy được ạ..

Mong Thầy giúp đỡ em, em cảm ơn ạ..
Thêm câu lệnh On Error Resume Next lên đầu code đi
 
Upvote 0
Web KT

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

Back
Top Bottom