Đặt tên cho sheet bằng giá trị một cell trong sheet đó?

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

tuantd

Thành viên mới
Tham gia
17/12/07
Bài viết
11
Được thích
6
Đặt tên cho sheet bằng giá trị một cell trong sheet đó? KHi cần thay đổi tên sheet tôi chỉ cần thay đổi tên trong cell đó. Bạn nào biết có thể chỉ giúp. Xin cảm ơn
 
Đặt tên cho sheet bằng giá trị một cell trong sheet đó? KHi cần thay đổi tên sheet tôi chỉ cần thay đổi tên trong cell đó. Bạn nào biết có thể chỉ giúp. Xin cảm ơn
Hoặc dùng code dài này, nó sẽ báo lỗi khi nhập tên sheet không đúng chuẩn.
PHP:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        Const sNAMECELL As String = "b3"
        Const sERROR As String = "Ten sheet khong dung dinh dang "
        Dim sSheetName As String
        
        With Target
            If Not Intersect(.Cells, Range(sNAMECELL)) Is Nothing Then
                sSheetName = Range(sNAMECELL).Value
                If Not sSheetName = "" Then
                    On Error Resume Next
                    Me.Name = sSheetName
                    On Error GoTo 0
                    If Not sSheetName = Me.Name Then _
                        MsgBox sERROR & sNAMECELL
                End If
            End If
        End With
    End Sub

Bạn xem file nhé
Thân
 

File đính kèm

Upvote 0
Đặt tên cho sheet bằng giá trị một cell trong sheet đó? KHi cần thay đổi tên sheet tôi chỉ cần thay đổi tên trong cell đó. Bạn nào biết có thể chỉ giúp. Xin cảm ơn
Vụ này làm chẳng có gì khó.. nhưng tôi có 1 thắc mắc: Đàng nào cũng tốn 1 công gõ.. vậy tại sao bạn không gõ trực tiếp vào sheet tab để đổi tên sheet? Sao lại phải gõ vào cell, rồi từ cell này đổi tên sheet?
Có lẽ bạn nên nêu mục đích chính của mình thì hay hơn (học kiểu lắp ráp từng đoạn thế không có hiệu quả đâu)
 
Upvote 0
Vụ này làm chẳng có gì khó.. nhưng tôi có 1 thắc mắc: Đàng nào cũng tốn 1 công gõ.. vậy tại sao bạn không gõ trực tiếp vào sheet tab để đổi tên sheet? Sao lại phải gõ vào cell, rồi từ cell này đổi tên sheet?
Có lẽ bạn nên nêu mục đích chính của mình thì hay hơn (học kiểu lắp ráp từng đoạn thế không có hiệu quả đâu)

Bạn chưa gặp phải tình huống workbook của bạn có hàng ngàn sheet mà nên đặt tên sheet theo giá trị 1 cell nào đó. Lúc đó bạn làm thủ công được không? Cảm ơn bạn.

Tôi xin chân thành cảm ơn câu trả lời của các bạn. Chúc các bạn thành công.

Nhân đây tôi cũng muốn hỏi thêm các bạn. Hiệu lực của code này là trong 1 sheet, nếu tôi muốn hiệu lực của nó trong cả workbook thì có được không các bạn? Xin cảm ơn.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Nhân đây tôi cũng muốn hỏi thêm các bạn. Hiệu lực của code này là trong 1 sheet, nếu tôi muốn hiệu lực của nó trong cả workbook thì có được không các bạn? Xin cảm ơn.
Bạn copy code này vào ThisWorkbook nhé. Khi cell B3 thay đổi thì tên sheet sẽ thay đổi theo.

PHP:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 Dim tensheet As Range
   Set tensheet = Range("b3")
       On Error Resume Next
       ActiveSheet.Name = tensheet.Value
       On Error GoTo 0
End Sub
Bạn xem file đính kèm nhe
Thân
 

File đính kèm

Upvote 0
To Dom: Không cần dài dòng thế đâu mà code của bạn sửa chút vẫn đạt yêu cầu

Mã:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
       On Error Resume Next
       ActiveSheet.Name = Range("b3")
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi không thể dùng đoạn code trên trong excell 2007. Bạn nào có thể giải thích tại sao không? Xin cảm ơn.
 
Upvote 0
Bạn xem hướng dẫn ở file đính kèm nhé.
 

File đính kèm

Upvote 0
Bạn nên tham khảo code của bạn
huuthang_bd
user_offline.gif

Nguyễn Hữu Thắng
gold.gif
gold.gif
gold.gif
gold.gif
gold.gif

Mình đã làm trên *.xlsx chạy rất tốt
 
Upvote 0
Web KT

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

Back
Top Bottom