loinguyen212
Thành viên thường trực




- Tham gia
- 21/2/14
- Bài viết
- 254
- Được thích
- 35





Em xin chào thầy cô, anh chị.
Em có vướng mắc khi viết name động để cho lựa chọn khi sử dụng Data Validation, nên nghĩ đến VBA có thể giải quyết được, mong các thầy cô anh chị giúp đỡ.
=IF(RIGHT(C4)="A",OFFSET(KBNot!$B$4,2,MATCH(DieuDoXe!B4,KBNot!B4:Q4,0),8),OFFSET(KBNot!$B$16,2,MATCH(DieuDoXe!B4,KBNot!B16:Q16,0),8))












Bạn sửa Name 1 chút là được. Đặt chuột tại D4Cảm ơn bác dhn46. Name của bác rất hay. Có vướng mắc ở chỗ là chiều dài của vùng trong offset là cố định, dẫn đến khi xổ xuống danh sách sẽ có vùng trắng, và một khi thêm hoặc bớt trong table "Di" thì vùng xổ xuống cũng sẽ không tự nhận đúng bằng chiều cao của từng cột trong table "Di" đó. Hiểu biết hạn chế, mong bác giải đáp giúp.
=IF(RIGHT(DieuDoXe!C4)="A",OFFSET(KBNot!$A$4,2,MATCH(DieuDoXe!B4,KBNot!$B$4:$AA$4,0),COUNT(OFFSET(KBNot!$A$4,2,MATCH(DieuDoXe!B4,KBNot!$B$4:$AA$4,0),8))),OFFSET(KBNot!$A$16,3,MATCH(DieuDoXe!B4,KBNot!$B$16:$AA$16,0),COUNT(OFFSET(KBNot!$A$16,3,MATCH(DieuDoXe!B4,KBNot!$B$16:$AA$16,0),8))))





Thì cứ thay số 8 bằng đoạn counta thôi bạn =counta(K6:K20) chẳng hạn, sau phát sinh thêm thì nên chèn vào giữa rồi chỉnh lạiTuyệt vời. Còn một xíu nữa thôi ở chỗ là khi em thêm ở ô K14, sheet KBNot, ví dụ là thêm 22:00. Thì ở đây mình lại phải sửa lại công thức đúng không ạ (sửa từ 8 thành 9 để nó tính số dòng), việc để cho nó counta theo cột của table thì sẽ giải quyết được vấn đề này, nhưng đưa vào name cho nó hiểu thì lại là vấn đề khác. Bác có cao kiến xin chỉ giáo cho em với.




Chưa thực sự hiểu được ý bạn, nhưng theo cấu trúc của bạn thì bạn nhập dữ liệu vào K14 bảng dò 1 không tự động thêm dòng. Nếu nhập dữ liệu tại K14, K15 mà tự động thêm dòng thì chắc sẽ có cách bạn ah.Cảm ơn bác Comet. Ý kiến của bác không phải em chưa nghĩ đến, mà điều em đang muốn hướng đến là tận dụng tính năng của table, không thì em đã không nhồi cái table này vào làm gì cho nặng file, kể cả khi bác insert bao nhiêu đi chăng nữa thì nó vẫn nhận theo việc counta cột của table (với table thì các cột luôn có thể gọi bằng tên mà không cần đặt name, nên rất động).




=IF(RIGHT(DieuDoXe!D9)="A",OFFSET(KBNot!$A$4,2,MATCH(DieuDoXe!C9,KBNot!$B$4:$AA$4,0),COUNT(OFFSET(KBNot!$A$4,2,MATCH(DieuDoXe!C9,KBNot!$B$4:$AA$4,0),ROWS(Di)))),OFFSET(KBNot!$A$16,3,MATCH(DieuDoXe!C9,KBNot!$B$16:$AA$16,0),COUNT(OFFSET(KBNot!$A$16,3,MATCH(DieuDoXe!C9,KBNot!$B$16:$AA$16,0),ROWS(Ve)))))



