Mình cần một hàm trả về tên của Sheet hiện hành (1 người xem)

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

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

NHG

Thành viên hoạt động
Tham gia
15/1/07
Bài viết
148
Được thích
127
Mình muốn tạo một hàm trả về tên của Sheet hiện hành
Ví dụ: Trong ô A1 của Sheet "Tong_hop" mình đánh =Sheet() thì sẽ trả về giá trị "Tong_hop"
 
NHG đã viết:
Mình muốn tạo một hàm trả về tên của Sheet hiện hành
Ví dụ: Trong ô A1 của Sheet "Tong_hop" mình đánh =Sheet() thì sẽ trả về giá trị "Tong_hop"
Cái này có thể dùng hàm của Excel, còn đây là hàm tự tạo:

Mã:
Function Sheet() As String
Sheet = ActiveSheet.Name
End Function
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Ai dà,
Cái này mà dùng tới VBA thì cũng gọn nhưng cũng giống giết gà mà dùng dao mổ trâu í.
Các bác thử công thức này xem thế nào nhé
PHP:
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1),1))
Không phải đặt Name mà cũng chẳng Macro4 gì, hi hi

TDN
 
Upvote 0
tedaynui đã viết:
Ai dà,
Cái này mà dùng tới VBA thì cũng gọn nhưng cũng giống giết gà mà dùng dao mổ trâu í.
Các bác thử công thức này xem thế nào nhé
PHP:
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1),1))
Không phải đặt Name mà cũng chẳng Macro4 gì, hi hi

TDN
Tất nhiên có sự khác nhau chứ... Bài viết của tôi là lấy tên toàn bộ các sheet có trong Workbook, dùng macro4 để giải quyết thật sự quá dễ, còn mà dùng CELL ấy hả... e rằng còn lâu...
he...he...
Có điều hình như đồng chí kia chẳng thích xài công thức đâu... khoái VBA hơn thì phải... thôi kệ, thích thì chìu vậy!
ANH TUẤN
 
Upvote 0
Hờ hờ, sao bác biết em không thích dùng công thức, em dùng các hàm của Excel cũng tạm ổn nhưng không thích dùng hàm lắm vì dữ liệu của em toàn >10.000 dòng, dùng hàm thì máy e treo luôn, nhưng bây giờ mới tập tẹ VBA nên còn gà vịt lắm, mong các bác giúp đỡ
 
Upvote 0
NHG đã viết:
Hờ hờ, sao bác biết em không thích dùng công thức, em dùng các hàm của Excel cũng tạm ổn nhưng không thích dùng hàm lắm vì dữ liệu của em toàn >10.000 dòng, dùng hàm thì máy e treo luôn, nhưng bây giờ mới tập tẹ VBA nên còn gà vịt lắm, mong các bác giúp đỡ
He... he... Hơi mâu thuẩn... lấy tên sheet mắc mớ gì đến dử liệu nhiều hay ít? Bạn nói đi! Nếu cảm thấy ko thích lắm công thức thì dùng cái Function của thầy Long, ngược lại thì dùng cái của thầy Phước...
Còn nữa nha! dử liệu >10.000 dòng, dùng hàm thì máy e treo luôn ... ha... ha... Cái này chỉ trách là bạn chưa biết cách dùng nhuần nhuyển thôi...
ANH TUẤN
 
Upvote 0
NHG đã viết:
Hờ hờ, sao bác biết em không thích dùng công thức, em dùng các hàm của Excel cũng tạm ổn nhưng không thích dùng hàm lắm vì dữ liệu của em toàn >10.000 dòng, dùng hàm thì máy e treo luôn, nhưng bây giờ mới tập tẹ VBA nên còn gà vịt lắm, mong các bác giúp đỡ

10.000 dòng đều có công thức đó hả bạn ??? Thế thì chán nhỉ !!!

Thân!
 
Upvote 0
Tóm lại:
http://support.microsoft.com/kb/213475
http://www.exceltip.com/st/Cell_Function_Returns_Sheet_Name,_Workbook_Name_and_Path/180.html
http://www.giaiphapexcel.com/forum/showthread.php?t=7999
Mã:
Function Sheetname()
    Application.Volatile
    Sheetname = Application.Caller.Parent.Name
End Function
Function SName()
'Trả về tên của ActiveSheet
    Application.Volatile
    SName = ActiveSheet.Name
End Function
Hoặc:
Lấy tên sheet:
Mã:
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,255)
Lấy tên workbook:
Mã:
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,(FIND("]",CELL("filename"))+1)-FIND("[",CELL("filename"))-2)
Lấy địa chỉ đường dẫn và tên workbook:
Mã:
=CELL("filename")
Lấy địa chỉ đường dẫn:
Mã:
=MID(CELL("filename"),1,FIND("[",CELL("filename"))-1)

Lvd
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng cái em đang cần. Cảm ơn Bác Duyệt nhiều nha

Lấy tên sheet:
Mã:
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,255)
hoặc của bac tedaynui
Mã:
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1),1))
Lấy tên workbook:
Mã:
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,(FIND("]",CELL("filename"))+1)-FIND("[",CELL("filename"))-2)
Lấy địa chỉ đường dẫn và tên workbook:
Mã:
=CELL("filename")
Lấy địa chỉ đường dẫn:
Mã:
=MID(CELL("filename"),1,FIND("[",CELL("filename"))-1)
 
Lần chỉnh sửa cuối:
Upvote 0
Như thế này có được không các bạn.
Mình dùng cách này để lấy tên sheet đưa vào 1 cái list để tạo name động để lookup đó.

Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 0
Me.Columns(3).ClearContents
Range("C1").Select
For Each wSheet In Worksheets
If wSheet.Name <> Me.Name Then
ActiveCell.Offset(M, 0).Value = wSheet.Name
M = M + 1
End If
Next wSheet
End Sub
 
Upvote 0
Hỏi hàm cell

Tóm lại:
http://support.microsoft.com/kb/213475
http://www.exceltip.com/st/Cell_Function_Returns_Sheet_Name,_Workbook_Name_and_Path/180.html
http://www.giaiphapexcel.com/forum/showthread.php?t=7999
Mã:
Function Sheetname()
    Application.Volatile
    Sheetname = Application.Caller.Parent.Name
End Function
Function SName()
'Trả về tên của ActiveSheet
    Application.Volatile
    SName = ActiveSheet.Name
End Function
Hoặc:
Lấy tên sheet:
Mã:
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,255)
Lấy tên workbook:
Mã:
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,(FIND("]",CELL("filename"))+1)-FIND("[",CELL("filename"))-2)
Lấy địa chỉ đường dẫn và tên workbook:
Mã:
=CELL("filename")
Lấy địa chỉ đường dẫn:
Mã:
=MID(CELL("filename"),1,FIND("[",CELL("filename"))-1)

Lvd
Em dùng hàm cell để lấy tên sheet nhưng không được vì gặp cái lỗi này: nếu cùng lúc dùng hàm đó trên nhiều sheet thì nó cho ra 1 cái tên duy nhất. Ví dụ cả sheet 1 và sheet 2 em đều dùng hàm cell("filename"). Nếu công thức nào gõ sau thì nó sẽ hiện tên của sheet đó cho cả 2. Mình chưa bít xử lý sao?
 
Upvote 0
Ah, cho mình hỏi thêm chút, mình chưa dùng VBA lần nào. Ở trên mình có viết thử vài dòng lấy tên sheet, mà viết xong, sao mình không dùng được nhỉ?
 
Upvote 0
Em dùng hàm cell để lấy tên sheet nhưng không được vì gặp cái lỗi này: nếu cùng lúc dùng hàm đó trên nhiều sheet thì nó cho ra 1 cái tên duy nhất. Ví dụ cả sheet 1 và sheet 2 em đều dùng hàm cell("filename"). Nếu công thức nào gõ sau thì nó sẽ hiện tên của sheet đó cho cả 2. Mình chưa bít xử lý sao?
Thay vì dùng CELL("filename") bạn sửa lại thành CELL("filename", A1) nhé
----------------------
Ah, cho mình hỏi thêm chút, mình chưa dùng VBA lần nào. Ở trên mình có viết thử vài dòng lấy tên sheet, mà viết xong, sao mình không dùng được nhỉ?
Vấn đề là bạn muốn dùng nó vào việc gì chứ?
Thông thường, để dùng tên sheet như 1 tham chiếu, ta lồng nó vào trong hàm INDIRECT
 
Upvote 0
Web KT

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

Back
Top Bottom