Em có tự làm macro này thấy chạy cũng oke mà gán biến ít hơn ạ. Mọi người có thể tham khảo:
Sub NhapData()
Dim dongcuoi, dongcuoi_b1, dongcuoi_b2, dongcuoi_1, dongcuoi_2, dongcuoi_3 As Long
'dongcuoi la dong cuoi book4 ban dau
'dongcuoi_b1 la dong cuoi book4 sau khi gan b1
'dongcuoi_b2 la dong cuoi book4 sau khi gan b2
'dongcuoi_1 la dong cuoi book1 tru di 1 dong
'dongcuoi_2 la dong cuoi book2 tru di 1 dong
'dongcuoi_3 la dong cuoi book3 tru di 1 dong
dongcuoi = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
dongcuoi_1 = Workbooks("Book1").Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row - 1
dongcuoi_2 = Workbooks("Book2").Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row - 1
dongcuoi_3 = Workbooks("Book3").Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row - 1
'Gan Book 1
Workbooks("Book4").Sheets("Data").Range("A" & dongcuoi + 1 & ":C" & dongcuoi + dongcuoi_1).Value = _
Workbooks("Book1").Sheets("Sheet1").Range("A2:C" & dongcuoi_1 + 1).Value
dongcuoi_b1 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
'gan book 2
Workbooks("Book4").Sheets("Data").Range("A" & dongcuoi_b1 + 1 & ":C" & dongcuoi_b1 + dongcuoi_2).Value = _
Workbooks("Book2").Sheets("Sheet1").Range("A2:C" & dongcuoi_2 + 1).Value
dongcuoi_b2 = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
'gan book 3
Workbooks("Book4").Sheets("Data").Range("A" & dongcuoi_b2 + 1 & ":C" & dongcuoi_b2 + dongcuoi_3).Value = _
Workbooks("Book3").Sheets("Sheet1").Range("A2:C" & dongcuoi_3 + 1).Value
End Sub
Bạn tham khảo thêm phần vòng lặp nữa nhé, biến của bạn sẽ ít đáng kể đấy.