Bạn tham khảo tại đây.Đặ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.Đặ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
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
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?Đặ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)
Bạn copy code này vào ThisWorkbook nhé. Khi cell B3 thay đổi thì tên sheet sẽ thay đổi theo.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.
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
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
ActiveSheet.Name = Range("b3")
End Sub