Chèn tên sheet vào ô A1 (1 người xem)

  • Thread starter Thread starter htclub
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

htclub

Thành viên mới
Tham gia
21/12/06
Bài viết
10
Được thích
0
Làm cách nào tự động chèn 1 dòng trên đầu sheet và điền tên sheet vào ô A1 tất cả các sheet trên file nhỉ
 
PHP:
Sub chen()
    cws = Worksheets.Count
    For i = 1 To cws
        Sheets(i).Rows("1:1").Insert Shift:=xlDown
        Sheets(i).[A1].Value = Sheets(i).Name
    Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tự động là con dao 2 lưỡi. Nói chuyện tự động thì phải cho biết đến mức độ nào?
1. Nếu đã làm 1 lần ròi thì nó tự động biết đã làm rồi, không cần làm nữa. Hay là cư việc làm tiếp, sau n lần tự đọng, sheet sẽ có n dòng với tên sheet.
2. Tự động mỗi lần tạo sheet mới thì chuyện này xảy ra?
3. Mỗi lần đổi tên sheet thì sao?
Chỉ một vài ví dụ cho bạn thấy mõi lần nói chuyện tự động, cần nhìn trước xem hậu quả của cái tự động đó ra sao.
 
Upvote 0
Tự động là con dao 2 lưỡi. Nói chuyện tự động thì phải cho biết đến mức độ nào?
1. Nếu đã làm 1 lần ròi thì nó tự động biết đã làm rồi, không cần làm nữa. Hay là cư việc làm tiếp, sau n lần tự đọng, sheet sẽ có n dòng với tên sheet.
2. Tự động mỗi lần tạo sheet mới thì chuyện này xảy ra?
3. Mỗi lần đổi tên sheet thì sao?
Chỉ một vài ví dụ cho bạn thấy mõi lần nói chuyện tự động, cần nhìn trước xem hậu quả của cái tự động đó ra sao.
Viết code trong ThisWorkbook:
1. với Workbook_SheetActivate nếu Sh.Range("A1") = Sh.Name rồi thì thôi, khác thì (chèn dòng,) cho Sh.Range("A1") = Sh.Name
2. khi tạo sheet mới thì Workbook_SheetActive sẽ kích hoạt
3. phiền nhất là đổi tên sheet. không có event nào phát hiện ra sự kiện này. có thể bẫy bằng Workbook_Open, Workbook_SheetDeactivate và Workbook_SheetSelectionChange. có thể xảy ra các tình huống sau khi đổi tên sheet:
a/ chọn ô bất kỳ khác với ActiveCell, Workbook_SheetSelectionChange xảy ra
b/ chọn sheet khác, Workbook_SheetDeactivate xảy ra
c/ không thực hiện a/, b/ mà đóng file (save): thì khi mở lại Workbook_Open xảy ra (dùng vòng lặp kiểm tra tất cả các sheets)
P/S: nếu không chèn dòng thì khỏi kiểm tra mà cho luôn Sh.Range("A1") = Sh.Name trong các sự kiện kể trên.
 
Upvote 0
Chắc chủ topic chỉ muốn bước đầu học code thôi mà. Đó là phương thức, còn bẫy thì cần phải có level cao hơn. Chứ với kiểu hỏi kia thì chắc chưa cần bàn luận đến bẫy vội ạ!
 
Upvote 0
Chắc chủ topic chỉ muốn bước đầu học code thôi mà. Đó là phương thức, còn bẫy thì cần phải có level cao hơn. Chứ với kiểu hỏi kia thì chắc chưa cần bàn luận đến bẫy vội ạ!

Bước đầu của học code là làm quen với cách suy nghĩ sau kết quả, tức là hậu quả.

Làm việc với sự tự động luôn luôn có khả năng hậu quả ngoài ý muốn. Vì vậy, trước khi tính "tự động", phải nghĩ chuyện gì sẽ xảy ra kế tiếp.
 
Upvote 0
Làm cách nào tự động chèn 1 dòng trên đầu sheet và điền tên sheet vào ô A1 tất cả các sheet trên file nhỉ
nếu đây là bài tập làm cho vui thì ở trên đã có Code , Nếu đây là để áp dụng vào công việc thì việc chèn thêm dòng ở vị trí dòng 1 thật là vô nghĩa . Đã biết trước cần phải có tên sheet ở ô A1 mắc mớ gì phạm vào dòng 1 làm chi để phải có cái động tác chèn dòng 1, trừ khi sheet xuất ra từ phần mềm không can thiệp được

Và 1 khi để yên dòng 1 thì Excel đã có sẵn hàm
Mã:
=CELL("filename")
chỉ cần nghĩ cách làm sao lấy được tên sheet trong chuỗi đó là xong
 
Upvote 0
nếu đây là bài tập làm cho vui thì ở trên đã có Code , Nếu đây là để áp dụng vào công việc thì việc chèn thêm dòng ở vị trí dòng 1 thật là vô nghĩa . Đã biết trước cần phải có tên sheet ở ô A1 mắc mớ gì phạm vào dòng 1 làm chi để phải có cái động tác chèn dòng 1, trừ khi sheet xuất ra từ phần mềm không can thiệp được

Và 1 khi để yên dòng 1 thì Excel đã có sẵn hàm
Mã:
=CELL("filename")
chỉ cần nghĩ cách làm sao lấy được tên sheet trong chuỗi đó là xong
Công thức này không ổn. Nếu bỏ qua tham số reference thì hàm CELL sẽ lấy thông tin ô hiện hành.
Thử nghiệm như sau sẽ thấy chỗ không ổn:
Mở 1 file có ít nhất 2 sheet
Tại ô A1 sheet 1 nhập công thức
Mã:
=CELL("filename")
Chọn sheet 2
Bấm F9
Quay lại sheet 1 xem kết quả ô A1

Dùng công thức này thì không sao:
Mã:
=CELL("filename",A1)
Có thể thay A1 bằng một ô bất kỳ.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom