for more than a year: khoảng hơn 1 năm (for + khoảng thời gian)
=> Từ cần điền diễn tả một hành động xảy ra trong quá khứ và kéo dài đến hiện tại nên ta dùng thì hiện tại hoàn thành: has learned
=> Lan has learned English for more than a year but she can speak it very well.
Tạm dịch: Lan đã học tiếng Anh hơn một năm nhưng cô ấy có thể nói rất tốt.
Đáp án cần chọn là: D