Đổi Code Name bằng VBA ?

Liên hệ QC

Blad01

Thành viên thường trực
Tham gia
6/10/07
Bài viết
350
Được thích
28
Chào các anh chị trong diễn đàn. Em tham khảo đoạn code để thay đổi CodeName trong VBA nhưng có một hộp thông báo hiện lên và phải ấn Continue thì sub mới tiếp tục chạy. Xin hỏi có cách nào thay đổi CodeName mà không có thông báo như vậy không ?
Code:
Mã:
Sub bieuTK1()
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "B1"
ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Worksheets(Sheets.Count).CodeName).Name = "TK1"
End Sub
A1.jpg
 

File đính kèm

  • TK_2020.xls
    35.5 KB · Đọc: 12
Lần chỉnh sửa cuối:
Anh , chị, thầy cô giúp em với được không ?
 
Upvote 0
Thầy ndu có cách nào giúp em ko ạ
 
Upvote 0
Bạn thử chạy macro này xem sẽ ra sao:
PHP:
Sub bieuTK1()
 On Error GoTo LoiCT
 ThisWorkbook.Worksheets.Add after:=Sheets(Sheets.Count)
 Sheets(Sheets.Count).Name = "B1"
 ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Worksheets(Sheets.Count).CodeName).Name = "TK1"
Err_:           Exit Sub
LoiCT:
 If Err = 1004 Then
    Resume Next
 Else
    MsgBox Error(), , Err
    Resume Err_
 End If
End Sub
 
Upvote 0
Anh , chị, thầy cô giúp em với được không ?
Thử sửa code thành vầy xem:
Mã:
Sub bieuTK1()
  Dim wks As Worksheet, lCount As Long
  With ThisWorkbook
    Set wks = .Sheets.Add(after:=.Sheets(.Sheets.Count))
    wks.Name = "B1"
    lCount = .VBProject.VBComponents.Count   '<-- tưởng không có tác dụng nhưng phải có
    .VBProject.VBComponents(wks.CodeName).Name = "TK1"
  End With
End Sub
Nói chung vừa add sheet vừa đổi sheet code name thì phải vậy, riêng thông báo lỗi của bạn thì tôi không biết đâu
--------------------------------------------
Nói thêm:
1> Để code trên có thể chạy thì phải thêm yêu cầu nữa, đó là phải vào Excel Options --> Trust Center --> Trust Center Settings... --> Macro Settings và check vào mục "Trust access to the VBA project object model"
2> Code này chỉ chạy được một lần, lần thứ hai sẽ bị lỗi do tên sheet đã tồn tại. Bạn lưu ý nhé
 
Upvote 0
Web KT

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

Back
Top Bottom