Thầy cho hỏi:
1. Nếu xài code VBA này thi sơ vơi Vlookup trong excel thi tiện hơn ở điểm nào ạ. Có giảm dung lượng của file hay lơi ích là gì ạ.
2.Tại sao lai phải dùng offset trong chỗ này ạ. Do e đọc đoạn code này e chỉ hiểu là 0 dòng là ko di chuyển dòng đi mà chỉ di chuyển cột vậy làm sao nó nhảy sang dòng thứ 2 được (dòng kế toán chẳng hạn)?
Chào bạn, nếu sài code vba bạn có thể dùng vòng lặp thay thế hàm vlookup file dung lượng chắc chắn sẽ giảm đi bạn nhé, thường dùng để tạo ra dữ liệu chi tiết bạn nhé.
Hàm offset ở đây di chuyển bạn muốn di chuyển xuống dưới là offset(dong,cot) bạn dùng như thế là được
Mình trả lời như sau nhé:
1. Dùng code VBA sẽ cho ra kết quả ngay vào trong ô, không phải công thức => file sẽ nhẹ hơn.
Việc dùng công thức 'sống' trong ô sẽ có đặc điểm là mỗi khi file excel tính toán thì công thức sẽ tính lại => càng nhiều công thức thì excel càng phải tính nhiều => file nặng và chậm.
Ngoài ra tốc độ tính toán sẽ có 'cảm giác' nhanh hơn vì qua VBA bạn kiểm soát được phạm vi cần tính, số lượng công thức cần tính, thay vì để excel tính toàn bộ tất cả những gì file có => tốc độ sẽ nhanh hơn.
2. Ví dụ bạn có code chọn ô A2 là
Range("A2").Select
giờ muốn chọn ô B2 thì sẽ có 2 cách:
- Sửa code trực tiếp từ chữ A thành chữ B: Range("B2").Select
- Dùng Offset di chuyển đi 1 cột: Range("A2").Offset(0,1).Select
Như vậy nếu phải sửa code để di chuyển qua nhiều cột thì dùng hàm offset vẫn tiện hơn, vì làm việc qua con số sẽ dễ hơn qua chữ.
Với con số trong hàm offset còn có thể dùng vòng lặp, dùng phép tính... để giúp điểm đến di động hơn thay vì cố định như nhập chữ cái trực tiếp.