tên lớp của danh sách học sinh (6 người xem)

Liên hệ QC

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

ntdtinfo

Thành viên mới
Tham gia
6/12/06
Bài viết
13
Được thích
0
các bạn ơi giúp dùm mình, là mình một tập tin excel gồm có nhiều sheet, mỗi sheet là một danh sách học sinh của 1 lớp. Vậy mình muốn đặt tên sheet1 là tên lớp 10a1 thì ở 1 ô bất kỳ(ví dụ ô A1) tự động nó lấy tên của Sheet1 để vào làm tên lớp. mong các ban chỉ giúp
 
ntdtinfo đã viết:
các bạn ơi giúp dùm mình, là mình một tập tin excel gồm có nhiều sheet, mỗi sheet là một danh sách học sinh của 1 lớp. Vậy mình muốn đặt tên sheet1 là tên lớp 10a1 thì ở 1 ô bất kỳ(ví dụ ô A1) tự động nó lấy tên của Sheet1 để vào làm tên lớp. mong các ban chỉ giúp
Bạn chạy đoạn code sau nhé
Mã:
Sub ReNameSheet()
Dim Ws As Worksheet
For Each Ws In Worksheets
    Ws.Name = Ws.Range("A1").Value
Next
End Sub

TDN
 
Có thể bạn nói chưa rõ nghĩa nên mọi người sẽ khó hiểu ý của bạn. Excel không có link từ tên của sheet mà chỉ link dữ liệu từ các ô trong sheet. Nếu đúng như bạn muốn thì bạn có thể upload file lên, bạn sẽ được trợ giúp bằng VBA của mọi người.
 
Chắc là phải dùng Hàm tự tạo
PHP:
Public Function shName()
shName = ThisWorkbook.ActiveSheet.Name
End Function

Tại mỗi ô bạn cần đặt tên, nhập công thức =shName()
 
Lần chỉnh sửa cuối:
ý mình là ở ô A1 là tên của sheet, nên khi mình đổi tên sheet thi tự động ô A1 cũng đổi theo.
 
Cell("filename",X1), X1 có thể là B1, C1, trả về tên file, sheet, dùng hàm right kết hợp len lấy ra tên sh.
 
ntdtinfo đã viết:
ý mình là ở ô A1 là tên của sheet, nên khi mình đổi tên sheet thi tự động ô A1 cũng đổi theo.
HI hi, đọc không kĩ. cứ tưởng là đổi tên Sheet, thì ra ngựợc lại. Vậy có thể dùng hàm cho từng ô A1 của mỗi sheet hoặc dùng đoạn code sau:
Mã:
Sub NameSheet()
Dim Ws As Worksheet
For Each Ws In Worksheets
    [B]Ws.Range("A1").Value = Ws.Name[/B]
Next
End Sub
TDN
 
Lần chỉnh sửa cuối:
ah, sau khi chay đoạn lệnh trên thì đúng. Nhưng khi mình đổi tên sheet thì ô A1 không đổi theo mà vẫn giữ tên sheet1. Minh muốn khi đổi tên sheet thì A1 cũng đổi theo.
 
Vậy sao không dùng hàm Cell("filename",X1) như trên. Làm thử đi.
 
ntdtinfo đã viết:
ah, sau khi chay đoạn lệnh trên thì đúng. Nhưng khi mình đổi tên sheet thì ô A1 không đổi theo mà vẫn giữ tên sheet1. Minh muốn khi đổi tên sheet thì A1 cũng đổi theo.
Đúng rồi, mỗi khi đổi tên sheet thì bạn phải chạy lại đoạn code trên. Nếu thay đổi tên sheet thì thay đổi gtrị ô A1 thì tại ô A1 của mỗi sheet, bạn phải dùng hàm thôi !

TDN
 
ah, cảm ơn anh!. Mà mình có cách nào hay đoạn code nào để khi mình thay đổi là tự động ô A1 thay đổi theo.
 
Theo gợi ý của bác ThuNghi, mình đề nghị bạn dùng hàm này, sẽ update cả khi bạn đổi tên sheet
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
 
ah làm như bạn SoiBien thì ở ô A1 nào mình cũng phải gõ công thức. cái này thì không thể làm cho 1 tập tin nhiều sheet
 
ntdtinfo đã viết:
ah làm như bạn SoiBien thì ở ô A1 nào mình cũng phải gõ công thức. cái này thì không thể làm cho 1 tập tin nhiều sheet
Bạn chọn 1 lần nhiều sheet, rồi nhập công thức vào. Vậy là khoẻ re.

TDN
 
Chỉ có copy, Ctr Page Down, Ctr V mà cũng phải lập Code, hơi bị mê VBA.
Bạn có cần làm 1 code khi mở file thì gắn toàn bộ CT trên vào A1?
If u need, 30".
 
Đối với riêng trường hợp này thì tôi ủng hộ cách của ThuNghi... rất nhẹ nhàng... Việc gỏ công thức chỉ làm có 1 lần duy nhất, đâu có mất công gì chứ... Gõ 1 lần, cho 50 sheet cũng dc...
ANH TUẤN
 
em chưa dùng hàm cell() lần nào ,các bác chỉ dẫn cụ thể ví dụ đó để em hhọc hỏi thêm được ko ạh
 
nguyenthuan đã viết:
em chưa dùng hàm cell() lần nào ,các bác chỉ dẫn cụ thể ví dụ đó để em hhọc hỏi thêm được ko ạh

Cell là hàm trả về các thuộc tính của một ô chẳng hạn như địa chỉ, format, nội dung của ô.

Cấu trúc hàm:
CELL(loại thông tin,tham chiếu)

"Loại thông tin" là một giá trị text mà bạn muốn trả về như "address", "col","filename"...

Ví dụ: bạn muốn biết ô A2 format theo kiểu gì, thay vì bạn nhấn vào format/cell thì bạn có thể gõ =cell("format", A2)

Bạn nhấn F1, gõ Cell để xem thêm thông tin trong phần help của Excel nha!.
 
Nói thêm 1 chút trong trường hợp lấy tên sheet thì dùng =CELL("Filename",A1)
Trong đó "Filename" là bắt buộc phải có, còn A1 là cell tuỳ chọn, muốn thay bằng cell khác, A2, B1, C5 gì gì là tuỳ ý
Tuy nhiên giá trị trả về chưa phải là tên sheet đâu nha! Nó trả về nguyên cả đường dẩn chứa file... VD như trên máy tính của tôi, sau khi lưu file tại Desktop, tôi có công thức A1 = Cell("Filename", A1) và giá trị trả về là:
C:\Documents and Settings\ANHTUAN\Desktop\[Book1.xls]Sheet1
Lúc này muốn lấy tên sheet thì phải dùng thêm các hàm RIGHT, MID, LEN đễ cắt ra chuổi Sheet1
Hàm này hơi đặc biệt:
1> File mới chưa lưu thì sẽ ko có kết quả (phải lưu trước rồi tạo hàm sau)
2> Tham chiếu dc chính ngay cell nó đang đứng
Mến
ANH TUẤN
 
Thế nếu em muôn lấy mỗi Book1

Thế nếu em muôn lấy mỗi Book1 (C:\Documents and Settings\ANHTUAN\Desktop\[Book1.xls]Sheet1) Tức là em chỉ muôn lấy mỗi tên của file thôi?
Nói thêm 1 chút trong trường hợp lấy tên sheet thì dùng =CELL("Filename",A1) Trong đó "Filename" là bắt buộc phải có, còn A1 là cell tuỳ chọn, muốn thay bằng cell khác, A2, B1, C5 gì gì là tuỳ ý Tuy nhiên giá trị trả về chưa phải là tên sheet đâu nha! Nó trả về nguyên cả đường dẩn chứa file... VD như trên máy tính của tôi, sau khi lưu file tại Desktop, tôi có công thức A1 = Cell("Filename", A1) và giá trị trả về là: C:\Documents and Settings\ANHTUAN\Desktop\[Book1.xls]Sheet1 Lúc này muốn lấy tên sheet thì phải dùng thêm các hàm RIGHT, MID, LEN đễ cắt ra chuổi Sheet1 Hàm này hơi đặc biệt: 1> File mới chưa lưu thì sẽ ko có kết quả (phải lưu trước rồi tạo hàm sau) 2> Tham chiếu dc chính ngay cell nó đang đứng Mến ANH TUẤN
 
Web KT

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

Back
Top Bottom