Tìm và thay thế một loạt tên sheet?

Liên hệ QC

songcham

Thành viên mới
Tham gia
14/12/08
Bài viết
37
Được thích
3
Tôi muốn tìm kiếm và thay thế trng một loạt tên sheet trong cùng worksheet, nên làm thế nà?
 
Tôi muốn tìm kiếm và thay thế trng một loạt tên sheet trong cùng worksheet, nên làm thế nà?
Trước tiên bạn phải lấy tất cả các tên sheet có chứa trong workbook đó bằng code sau:

Mã:
Sub LayTenSheet()
    Columns(1).Insert
    For i = 1 To Sheets.Count
         Cells(i, 1) = Sheets(i).Name
    Next i
End Sub

Sau khi lấy được tên ở cột A sheet List, bạn tiến hành đổi tên trên list và chạy code sau:

Mã:
Sub DoiTenSheet()
On Error Resume Next
    For i = 2 To Worksheets.Count
        Sheets(i).Name = Sheets(1).Cells(i, 1).Value
    Next i
End Sub

Bạn xem thêm file nhé.
 

File đính kèm

  • sheetname.xls
    69.5 KB · Đọc: 159
Tôi muốn tìm kiếm và thay thế trng một loạt tên sheet trong cùng worksheet, nên làm thế nà?
Thử file này xem (Dùng Form cho tiện thao tác)
1> Trong Module
PHP:
Public Dic
Sub ShowForm()
  UserForm1.Show
End Sub
PHP:
Sub UpdateList()
  Dim Sh As Worksheet
  Set Dic = CreateObject("Scripting.Dictionary")
  For Each Sh In ThisWorkbook.Worksheets
    Dic.Add Sh.Name, ""
  Next Sh
End Sub
2> Trong Form
PHP:
Private Sub UserForm_Initialize()
  Dim Sh As Worksheet
  UpdateList
  ComboBox1.List = Dic.Keys
End Sub
PHP:
Private Sub CommandButton1_Click()
  On Error Resume Next
  With ComboBox1
    Sheets(.Value).Name = TextBox1.Value
    .RemoveItem (0)
    UpdateList
    .List = Dic.Keys
    .Value = TextBox1.Value
  End With
End Sub
PHP:
Private Sub CommandButton2_Click()
  Unload UserForm1
End Sub
Lưu ý: Bấm tổ hợp phím Ctrl + Shift + S để khởi động UserForm
 

File đính kèm

  • Form_RenameSheet.xls
    42.5 KB · Đọc: 103
Cùng lúc đổi tên một loạt các sheet?

Tôi có thử thành công cái Form_RenameSheet nhưng có vẻ là thay đổi tên cho từng sheet chứ không phải một loạt các sheet.
Thế này nhé, tôi có các sheet có tên là: shee1,sheet2, sheet3,...sheet40 trong cùng một worksheet. Nay tôi muốn cùng lúc đổi tên chúng thành: shat1, shat2, shat3,...shat40.
Nghĩa là tôi sẽ tìm trong tên các sheet chữ "ee" để đổi thành "a". Tôi nên làm thế nào?
 
Tôi có thử thành công cái Form_RenameSheet nhưng có vẻ là thay đổi tên cho từng sheet chứ không phải một loạt các sheet.
Thế này nhé, tôi có các sheet có tên là: shee1,sheet2, sheet3,...sheet40 trong cùng một worksheet. Nay tôi muốn cùng lúc đổi tên chúng thành: shat1, shat2, shat3,...shat40.
Nghĩa là tôi sẽ tìm trong tên các sheet chữ "ee" để đổi thành "a". Tôi nên làm thế nào?
Thế lại càng dể, bạn thử code này:
PHP:
Sub ReNameSheet()
  Dim Sh As Worksheet
  On Error Resume Next
  For Each Sh In ThisWorkbook.Worksheets
    Sh.Name = Replace(Sh.Name, "Sheet", "Shat")
  Next Sh
End Sub
 
Cách này e có chỗ không tiện.
Ví dụ sau khi tôi đã đổ tên các Sheet1, Sheet2, Sheet3,...Sheet40 thành Shat1, Shat2, Shat3,...Shat40 tôi lại muốn đổi riêng tên Shat3 và Shat30 thành Sheet3 và Sheet30 tôi lại phải chỉnh code lại à?

Như vậy, không chỉ đổi hàng loạt tên một lần mà còn có thể tìm và đổi nhiều lần nữa, phải nên thế nào?
 
Cách này e có chỗ không tiện.
Ví dụ sau khi tôi đã đổ tên các Sheet1, Sheet2, Sheet3,...Sheet40 thành Shat1, Shat2, Shat3,...Shat40 tôi lại muốn đổi riêng tên Shat3 và Shat30 thành Sheet3 và Sheet30 tôi lại phải chỉnh code lại à?

Như vậy, không chỉ đổi hàng loạt tên một lần mà còn có thể tìm và đổi nhiều lần nữa, phải nên thế nào?
Như vậy chỉ có cách là tạo danh sách tên sheet, thay đổi sheet theo ý bạn rồi chạy code
 
Như vậy chỉ có cách là tạo danh sách tên sheet, thay đổi sheet theo ý bạn rồi chạy code
Cũng chưa chắc đã được! Vì ta sẽ "nói" thế nào để code nó hiểu rằng ta muốn đổi tên Sheet01, Sheet02... Sheet20 thành A01T, A02T,..., A20T
 
Cũng chưa chắc đã được! Vì ta sẽ "nói" thế nào để code nó hiểu rằng ta muốn đổi tên Sheet01, Sheet02... Sheet20 thành A01T, A02T,..., A20T
Được chứ thầy, bài số #2 em đã làm. Trước tiên lấy danh sách sheet vào cột A, những Cell ở cột A này nếu muốn thay đổi cell nào thì gõ thẳng trên đó chạy code đổi tên sheet thì OK
 
Được chứ thầy, bài số #2 em đã làm. Trước tiên lấy danh sách sheet vào cột A, những Cell ở cột A này nếu muốn thay đổi cell nào thì gõ thẳng trên đó chạy code đổi tên sheet thì OK
Thì đàng nào cũng phải tốn công "gõ" chứ TỰ ĐỘNG gì đâu chứ ---> Bạn chọn cell rồi sửa Value, tôi chọn trực tiếp sheet rồi đổi tên, so sánh 2 thao tác này cũng chẳng nhanh chậm hơn bao nhiêu đâu... Và tốc độ càng gần bằng nhau nếu như bạn không có điều kiện kéo Fill
Tự động nghĩa là gần giống như đổi tên file hàng loạt trong Windows ấy
 
Lần chỉnh sửa cuối:
Các bạn vẫn sử dụng form của bác ndu nhưng thêm vào phần input box để cho mọi người có thể tùy biến tên của hàng loạt sheet. Lúc này tên của sheet sẽ lấy theo value của input box là ok ngay mà.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom