Peter thường xuyên cần sao chép một trang tính chính sang một bản sao trong một sổ làm việc mới. Anh ấy có thể làm điều này tốt với VBA. Tuy nhiên, trang tính mà anh ta đang sao chép có mã được liên kết với nó và mã cũng được sao chép.

Peter không muốn mã trong bản sao, nhưng anh ấy muốn nó được giữ nguyên trong bản gốc. Anh ấy tự hỏi liệu có cách nào, trong macro của mình, để xóa mã trang tính trong trang tính vừa sao chép hay không.

Cách bạn thực hiện điều này phụ thuộc vào cách bạn muốn sổ làm việc đã hoàn thành (sổ mà bạn đang sao chép) trông như thế nào. Về cơ bản, sổ làm việc đã hoàn thành có chứa macro — bất kỳ macro nào — hay không? Nếu câu trả lời là không, nó sẽ không chứa bất kỳ macro nào, thì bạn có thể dễ dàng hoàn thành nhiệm vụ bằng cách lưu sổ làm việc mới ở định dạng XLSX. Bằng cách đó, Excel sẽ giúp bạn loại bỏ tất cả các macro. Bạn có thể thực hiện việc này bằng cách thêm một dòng trong mã của mình tương tự như sau khi bạn lưu sổ làm việc của mình:

ActiveWorkbook.SaveAs FileName:="MyExcelFile.xlsx", _   FileFormat:=xlOpenXMLWorkbook

Tuy nhiên, nếu bạn chỉ muốn loại bỏ mã trang tính nhưng lưu sổ làm việc mới với bất kỳ mã macro nào khác còn nguyên vẹn, thì bạn sẽ cần phải thực hiện một cách tiếp cận khác. Trong trường hợp này, bạn có thể đưa dòng sau vào macro của mình:

ActiveWorkbook.VBProject.VBComponents("Sheet1")

Điều này giả định rằng sổ làm việc mới là sổ làm việc đang hoạt động và trang tính có mã bạn muốn xóa được đặt tên là Sheet1. Bạn cũng có thể sử dụng những dòng này để hoàn thành nhiệm vụ tương tự:

wsName = ActiveSheet.CodeName With ThisWorkbook.VBProject.VBComponents(wsName).CodeModule     .DeleteLines 1, .CountOfLines End With

Lưu ý rằng wsName nên được khai báo như một biến chuỗi.

Đối với một lượng lớn các cách khác, bạn có thể ảnh hưởng đến các mô-đun mã khác nhau theo lập trình, bạn không thể sai khi tham khảo thông tin tuyệt vời của Chip Pearson tại đây:

http://cpearson.com/excel/vbe.aspx

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

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

Mẹo này (7612) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.