
Thầy giúp e bài này với ạ, em chỉ cần cop dữ liệu ở các cột liên tiếp vào cột A, nhưng viết code như trên thì VBA chỉ cop dữ liệu tại cột C vô thôi ạ, nếu xóa dòng dưới chỉ để dòng trên thì nó copy cột B qua, vậy là địa chỉ nhận của e sai ở chỗ nào ạ?
thứ 2 là: trong trường hợp này có thể tạo vòng lặp cho VBA lấy dữ liệu lần lượt từ các cột sang k ạ? nếu đc thì làm như nào ạ? Em đang rất cần để giải quyết công việc, thầy giúp em hồi âm sớm ạ, em cảm ơn
Chào bạn bạn có thể đẩy code đính kèm trong file được không?
Sub CopyDL()
Dim DC As Long
DC = Range("A" & Rows.Count).End(xlUp).Row
'Khoang Cach Dlieu cho
Dim DD As Long
DD = 2
Dim KC As Long
KC = DC - DD
'gop Du Lieu
Range("A" & DC + 1 & ":A" & DC + 1 + KC).Value = Range("B" & DD + 1 & ":B" & DC + KC).Value
Range("A" & DC + 1 & ":A" & DC + 1 + KC).Value = Range("C" & DD + 1 & ":C" & DC + KC).Value
End Sub
Chào bạn, nghĩa là bạn đẩy cả file lên nhé.
em không biết cách đưa file lên đây thầy ạ
thầy hướng dẫn để e đẩy file lên đc k ạ?
Chào bạn bạn đẩy file lên google drive rồi đính kèm ở chế độ công khai nhé.
Chào bạn bạn để chế độ công khai được không?
Chào bạn có phải bạn muốn ra kết quả thấy này?

code
Sub CopyDL()
Dim DC As Long
DC = Range("A" & Rows.Count).End(xlUp).Row
Dim DD As Long
DD = 2
Dim KC As Long
KC = DC - DD
Range("A" & DC + 1 & ":D" & DC + 1 + KC).Value = Range("A" & DD + 1 & ":D" & DC + KC).Value
End Sub
không ạ, e muốn ra kết quả là tất cả các dữ liệu ở cột B, C,D ( từ hàng 3 tới hàng cuối) đều đc copy sang cột a lần lượt ạ, dữ liệu cột B copy ngay dưới dòng cuối cột A, à tiếp theo dữ liệu cột C đc copy ngay dưới dòng cuối của cột A
chào bạn bạn có thể chụp kết quả bạn mong muốn không?

Dạ đây ạ
Chào bạn bạn xem code sau nhé:
Sub CopyDL()
Dim DC As Long
DC = Range("A" & Rows.Count).End(xlUp).Row
'Khoang Cach Dlieu cho
Dim DD As Long
DD = 2
Dim KC As Long
KC = DC - DD
'gop Du Lieu
Range("A" & DC + 1 & ":A" & DC + 1 + KC).Value = Range("B" & DD + 1 & ":B" & DC + KC).Value
DC = Range("A" & Rows.Count).End(xlUp).Row
Range("A" & DC + 1 & ":A" & DC + 1 + KC).Value = Range("C" & DD + 1 & ":C" & DC + KC).Value
DC = Range("A" & Rows.Count).End(xlUp).Row
Range("A" & DC + 1 & ":A" & DC + 1 + KC).Value = Range("D" & DD + 1 & ":D" & DC + KC).Value
End Sub
trong truong hợp này k thể dùng vòng lặp để VBA tự nhận biết lấy dữ liệu lần lượt đc ạ? vì số lượng cột dài lắm ạ
dạ không ạ, ý e là đây chỉ là ví dụ nhỏ, phần thực tế e muốn làm gồm 300 cột, vậy có cách nào đưa lần lượt 300 cột này vào cột A( lần lượt A,B,C,D....) mà k cần nhắc lại dòng cuối k ạ?
Chào bạn không có cách nào bạn nhé, vì phải có dòng cuối mới biết nên copy vào đâu.