xin lỗi chắc do mình chưa nói rỏ. tên sheets liền kế không cố định( có nhiều tên khác nhau)Khi đó bạn phải lấy tên sheet đầu tiên không ẩn đó để đưa vào tham số sheets() chứ không được lấy chỉ số index nữa. Ví dụ copy vùng A1:E12 của sheet đầu đang được chọn bởi lệnh Sheets(1).Activate thì bạn phải viết như sau: Sheets(ActiveSheet.Name).Range("A1:E12").Copy
do mình gọi nhiều workbook nên tên sheets không cố định được.
trường hợp này mình phải dùng vòng lặp For mới chính xác được.