Chào các anh chị em trong diễn đàn,
Mình thường xuyên phải làm việc với các file Excel có nhiều Sheet, đôi khi cần phải đổi tên hàng loạt theo một quy tắc nhất định. Việc đổi tên thủ công từng Sheet rất mất thời gian và dễ sai sót, đặc biệt với những file có hàng chục, thậm chí hàng trăm Sheet.
Hôm nay, mình chia sẻ một đoạn code VBA nhỏ giúp tự động hóa việc này. Code này cho phép đổi tên các Sheet dựa trên một tiền tố (prefix) và một số thứ tự tăng dần.
Ví dụ, nếu bạn muốn đổi tên các Sheet thành "BaoCao_01", "BaoCao_02", "BaoCao_03",...
Đây là đoạn code:
Sub RenameSheets()
Dim ws As Worksheet
Dim i As Integer
Dim prefix As String
prefix = InputBox("Nhập tiền tố cho tên Sheet:", "Đổi Tên Sheet", "BaoCao_")
If prefix = "" Then Exit Sub ' Người dùng nhấn Cancel hoặc để trống
i = 1
For Each ws In ThisWorkbook.Worksheets
ws.Name = prefix & Format(i, "00") ' Định dạng số với 2 chữ số (01, 02, ...)
i = i + 1
Next ws
MsgBox "Đã đổi tên " & (i - 1) & " Sheet thành công!", vbInformation
End SubCách sử dụng:
- Nhấn
Alt + F11để mở cửa sổ VBA. - Vào
Insert > Module. - Dán đoạn code trên vào.
- Chạy Sub
RenameSheets(nhấn F5 hoặc từ menu Run). - Một hộp thoại sẽ hiện ra yêu cầu bạn nhập tiền tố. Nhập tiền tố bạn muốn và nhấn OK.
Code sẽ tự động duyệt qua tất cả các Sheet trong file hiện tại và đổi tên chúng theo tiền tố bạn cung cấp, kèm theo số thứ tự tăng dần được định dạng 2 chữ số (ví dụ: 01, 02, ..., 10, 11,...).
Hy vọng đoạn code này hữu ích cho các bạn thường xuyên phải xử lý nhiều Sheet. Nếu có thắc mắc hoặc muốn tùy chỉnh thêm, đừng ngần ngại hỏi nhé!