Có thể bạn đã biết rằng bạn có thể thay đổi tên của tab trang tính bằng cách nhấp đúp vào tab và đặt tên mới. Tuy nhiên, nếu bạn muốn làm điều đó một cách linh hoạt? Điều gì xảy ra nếu bạn muốn giá trị trong ô A1 tự động xuất hiện dưới dạng tên tab?

Thật không may, Excel không cung cấp một hàm nội tại để xử lý loại nhiệm vụ này. Đó là một nhiệm vụ tương đối đơn giản để phát triển một chức năng như vậy bằng cách sử dụng macro sẽ thực hiện công việc cho bạn. Ví dụ: macro sau sẽ thay đổi tên tab thành nội dung của A1:

Sub myTabName()

ActiveSheet.Name = ActiveSheet.Range("A1")

End Sub

Có một số mục quan trọng cần lưu ý về macro này. Trước hết, không có lỗi kiểm tra. Điều này có nghĩa là nếu A1 chứa giá trị không hợp lệ đối với tên tab thì macro sẽ tạo ra lỗi.

Thứ hai, macro phải được chạy thủ công.

Điều gì sẽ xảy ra nếu bạn muốn một macro mạnh mẽ hơn, kiểm tra lỗi và chạy tự động? Kết quả là lâu hơn một chút, nhưng vẫn không quá phức tạp:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Left(Target, 31)

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

Để thiết lập macro này, hãy làm theo các bước sau:

  1. Mở một sổ làm việc mới chỉ có một trang tính trong đó.

  2. Bấm chuột phải vào tab trang tính và chọn Mã Chế độ xem từ menu Ngữ cảnh kết quả. Excel hiển thị VBA Editor.

  3. Dán (hoặc nhập) macro trên vào cửa sổ mã.

  4. Đóng VBA Editor.

  5. Xác định vị trí thư mục XLStart trên hệ thống của bạn. (Sử dụng khả năng tìm kiếm của Windows để định vị thư mục.)

  6. Lưu sổ làm việc dưới dạng mẫu hỗ trợ macro Excel bằng tên Book.xltm trong thư mục XLStart. Điều này làm cho mẫu trở thành mẫu của bạn cho bất kỳ sổ làm việc mới nào bạn tạo.

  7. Một lần nữa lưu sổ làm việc dưới dạng mẫu hỗ trợ macro trong cùng một thư mục, lần này sử dụng tên Sheet.xltm. Điều này làm cho mẫu trở thành mẫu cho bất kỳ trang tính mới nào bạn chèn vào sổ làm việc.

  8. Đóng và khởi động lại Excel.

Bây giờ, bất cứ lúc nào bạn thay đổi giá trị trong ô A1, tab trang tính cũng cập nhật.

Có một lưu ý khi sử dụng mẹo này: Nếu giá trị trong ô A1 là một ngày và bạn muốn tab trang tính chứa ngày đó, thì bạn có thể không nhận được những gì bạn mong đợi. Lý do rất đơn giản: Excel lưu trữ ngày tháng bên trong dưới dạng số sê-ri và đó là thứ được gán cho tab trang tính, không phải ngày được định dạng. Nếu bạn đang làm việc với ngày tháng, thì bạn sẽ cần thay đổi những gì thực sự được gán cho tên tab:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Format(Target, "mmm-dd-yy")

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

Lưu ý rằng thay đổi duy nhất ở đây là nội dung được gán cho thuộc tính Tên của trang tính — đó là ngày được định dạng. Bạn có thể, nếu muốn, sửa đổi định dạng ngày được sử dụng trong macro. Tuy nhiên, bạn không nên chọn định dạng sử dụng dấu gạch chéo vì những định dạng này là bất hợp pháp trong tên trang tính.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (7993) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: