Đổi tên sheet macro sai ở chỗ nào?

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

salam

Thành viên gắn bó
Tham gia
4/11/06
Bài viết
1,945
Được thích
1,896
Giới tính
Nam
Nghề nghiệp
Accountant
Em muốn đổi tên sheet từ sheet1:Sheet20 theo Mảng A1:A20 ở sheet30 em viết như dưới nhưng không được. Nhờ các bác xem giúp với.

Sub doitensheets()
Rng = Array("A1:A20")
For i = 0 To 19
Sheets(i + 1).Name = Range(Rng(i)).Value
Next i
End Sub
 
Bạn ơi... chỉ trã về code name với cái nào ko tìm thấy thôi chứ ko phải là trã về hết...
Ví dụ dử liệu tôi ghi A1 = Tuan01, A2 = Tuan02.. từ A3 trở đi rỗng... file có 3 sheet là HH (sheet1), KK (sheet2, và BB(sheet3)... vậy thì nếu chạy code nó phải đỗi tên dc HH sang Tuan01, KK sang Tuan02.. còn BB do ko tìm thấy sẽ trã về mặc định là Sheet3
Làm phiền bạn quá (nhưng tại tôi muốn tìm hiểu thôi)
ANH TUẤN
 
Upvote 0
Bác ơi, bác thử bỏ mấy cái dòng xác định sheet có tồn tại hay không đi ạ.
 
Upvote 0
He... he... Hoàn toàn chính xác... Cảm ơn nhiều
 
Upvote 0
Các bác ơi vẫn chưa được. Khi vị trí sheet không theo từ A-Z thì Sheets(i) vẫn đếm từ trái sang phải => nó không thay đổi hết vòng lặp các bác àh.
Em đưa file VD lên các bác xem nhé.
 

File đính kèm

Upvote 0
Bạn sửa vòng lặp thành For i = 1 to 30 hoặc For i = 1 to ThisWorkbook.Worksheets.Count
 
Upvote 0
Đúng rồi... tuy rằng bạn chỉ muốn đỗi tên sheet đến sheet thứ 20 nhưng theo code này thì bạn phải cho FOR chạy đến sheet cuối luôn... Nếu như trong quá trình quét nó ko tìm thấy dử liệu trong cột A thì nó sẽ trã sheet ấy về mặc định... Còn như bạn ko muốn cho nó trã về tên sheet mặc định thì càng dễ... dùng code này:
PHP:
Sub DoiTenSheet()
   For i = 1 To 30
       Shc = Sheets(i).CodeName
       Stt = Right(Shc, Len(Shc) - 5)
       If Cells(Stt, 1) <> "" Then Sheets(i).Name = Cells(Stt, 1).Value
   Next i
End Sub
Mến
ANH TUẤN
 
Upvote 0
Đúng rồi các Bác ơi. Em các ơn các bác đã nhiệt tình giúp đỡ, em cũng vỡ ra khá nhiều. Trông ngắn gọn thế mà mò hoa cả mắt chẳng ra đúng là VBA có khác.
 
Upvote 0
Web KT

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

Back
Top Bottom