Rắc rối khi thêm sheet

Thảo luận trong 'Những vấn đề chung' bắt đầu bởi voda, 24 Tháng sáu 2007.

  1. voda

    voda Thành viên danh dự

    Chào các bạn.
    Làm việc với chức năng Insert worksheet trong excel, tôi gặp trường hợp sau đây:
    -Khi ta xoá sheet đi, sau đó lại thêm sheet vào, tên của sheet không như ý ta mong muốn. Ví dụ: 1 workbook có 3 sheet với tên mặc định :sheet 1,
    sheet 2, sheet 3. Khi ta xoá sheet 2, sheet 3 đi. Sau đó ta thêm vào 1 sheet mới. Sheet thêm vào lại có tên là sheet 4 ( đáng ra phải là sheet 2). Hiện tượng này được khắc phục khi ta đóng, lưu file. Xin hỏi các bạn:
    1. Vì sao có hiện tượng đó?
    2.Cách khắc phục nó? (Tất nhiên là không cần phải đóng và lưu file.)
    Xin cám ơn nhiều.
     
  2. quocanh_2006

    quocanh_2006 New Member

    Theo tôi: trong Excel mặc định để tên là Sheet 1, Sheet 2....do vậy khi bạn chèn, hoặc xóa thì nó báo cho bạn biết là bạn đã chèn (Insert) và xóa (Delete) mấy Sheet để bạn biết các thao tác của mình có nên giữ lại hay bỏ đi sau khi đóng tài liệu . Giống như trước khi đóng tài liệu nó hỏi lại: Bạn có muốn lưu lại những sửa đổi bạn đã làm trong tài liệu...? (Do you want to save the changes you made to ...) Nếu chắc chắn thì OK. Nếu còn nghi ngờ mà muốn giữ bản cũ thì NO. Chứng tỏ bác Bill cẩn thận quá nhỉ! (Tôi bị trường hợp này kể thêm: Dạo đó mới dùng máy, quen cái câu trên, nên cứ bấm Yes. Ai ngờ một lần dính Virus nó hỏi "Do you want to Revert....?" bấm Yes thế là công toi.
     
  3. digita

    digita Guest

    Đề tránh macro làm thay đỗi dữ liệu trong sheet có trùng tên.

    Thí dụ bạn có 1 code macro1 trong đó có những mệnh lệnh gọi/thay đồi sheet2. Khi xoá sheet2 và chèn vào 1 sheet mới có trùng tên và nhập data vào sheet nầy rồi chạy macro1. Hậu quả sau khi chạy macro thì không thề ngờ trước được và XL không cho bạn tháo gở (undo) nhửng thay đồi sau đó.

    Nếu bạn muốn có 1 sheet mới theo thứ tự như ý muốn (và dĩ nhiên chấp nhận rủi ro) thì: 1/ sau khi xoá sheet xong save changes, 2/ đóng XL, 3/ khới động XL lại, 4/ mở file bạn vừa save rồi insert new sheet.

    Mến.
     
    Last edited by a moderator: 25 Tháng sáu 2007
  4. voda

    voda Thành viên danh dự

    Cám ơn các bạn đã góp ý cho mình.
    Khó khăn cụ thể của mình là ở cái code chia phòng thi. Lúc đầu chia 8 phòng chẳng hạn. Sau đó, chia lại 6 phòng. Nếu không đóng, lưu file trước khi chia lại thì bị báo lỗi. Mình muốn giải quyết vấn đề bằng 1 cách nào đó chứ không dùng bẫy lỗi hoặc đóng, lưu file. Nhờ các bạn giúp đỡ.
     
  5. digita

    digita Guest

    Bạn có thể up lên cái file mẩu để tôi xem. Không cần có tên danh sách học sinh.

    Mến
     
  6. voda

    voda Thành viên danh dự

    Mình gởi file mẫu nhờ các bạn xem dùm.
     

    Các file đính kèm:

  7. digita

    digita Guest

    Chào bạn Voda,

    Thì ra bạn đang lập bảng chia lớp thi. Trước hết về câu hỏi của bạn khi tạo các bảng dang sách chia lớp thì nên dùng mệnh lệnh Workbooks.Add để cái bảng chính của bạn không bị thay đổi. Sau nầy nếu phải chia phòng lại thì chỉ việc chạy macro lại để có 1 cái workbook mới.

    Bạn nên vô cái link sau để thao khảo thêm code của anh Pham Duy Long về việc chia danh sách phòng thi. Bạn nên dùng code đó & thay đổi nếu cần.

    http://www.giaiphapexcel.com/forum/showthread.php?t=2228
    post # 9

    Chúc bạn thành công.
     
  8. voda

    voda Thành viên danh dự

    -Cám ơn digita đã giúp mình. Việc tạo phòng thi trên file mới ( dùng lệnh Workbooks.add) sẽ không gặp rắc rối khi chia như trường hợp của mình nhưng lại có những phiền hà khác. Nên mình chọn cách này. Vấn đề là có cách nào khắc phục không? Trước khi chọn cách làm khác.
    -Mong bạn hiểu cho ý của mình.
     
  9. TranThanhPhong

    TranThanhPhong Thời gian !!!

    Chào voda,

    Bạn xem file này có đúng ý chưa nha!

    Good luck,

    TP.
     

    Các file đính kèm:

  10. voda

    voda Thành viên danh dự

    Cám ơn ttphong 2007. Cái code của bạn gọn mà hiệu quả rất cao. Tại sao mình lại viết 2 vòng lặp giống nhau mà không biết gộp nó lại nhỉ? Bạn đã chỉ cho mình một bài học thật bổ ích.
    Mình cũng xin cảm ơn tất cả các bạn.
     
  11. 06pro

    06pro New Member

    có ai biết la,f thế nào để tạo 1 sheet ở cuối hok?ví dụ tôi coá 10 sheet roài, mún tạo thêm sheet thứ 11 và đứng ở cuối thi làm thía nào?
     
  12. khoavu87

    khoavu87 Vũ Trần Khoa

    ' bạn thử ghi lại quá trình bằng recod macro xem sao
    Sub Macro1()
    Sheets.Add After:=Sheets(Sheets.Count)
    End Sub
     

Chia sẻ trang này