Ryan có một bảng tính Excel mà anh ấy cần sử dụng cho 3 ca mỗi ngày. Anh ta sao chép bảng tính này cho mỗi ca, mỗi ngày, lặp đi lặp lại. Đối với Ryan, dường như sẽ hữu ích nếu anh ta có một macro có thể sao chép trang tính chính 3 lần cho mỗi ngày trong tháng, đặt tên cho các trang tính là “Ngày 1 tháng 2 Ca 1”, “Ngày 1 tháng 2 Ca 2”,

vv Anh ấy không thể tìm thấy một macro để làm điều gì đó như thế này và đang tự hỏi liệu có ai có thể giúp đỡ không.

Điều này thực sự không mất nhiều thời gian để tổng hợp lại thành một macro. Bí quyết là hãy nhớ rằng macro cần sao chép trang tính chính của bạn 3 lần cho mỗi ngày trong tháng mong muốn. Điều này cũng ngụ ý rằng vĩ mô cần xác định có bao nhiêu ngày trong tháng. Sau khi biết điều này, bạn có thể thiết lập hai vòng lặp For …​ Next lồng nhau để xử lý quá trình tạo thực tế.

Sub CopyShiftSheets()

Dim iDay As Integer     Dim iShift As Integer     Dim iNumDays As Integer     Dim wMaster As Worksheet     Dim sTemp As String

iMonth = 2     ' Set to month desired, 1-12     iCurYear = Year(Now())

iNumDays = Day(DateSerial(iCurYear, iMonth + 1, 0))



Set wMaster = Worksheets("Master") 'change to name of master

For iDay = 1 To iNumDays         For iShift = 1 To 3             sTemp = MonthName(iMonth) & " " & iDay & " Shift " & iShift             wMaster.Copy After:=Sheets(Sheets.Count)

ActiveSheet.Name = sTemp         Next iShift     Next iDay End Sub

Lưu ý rằng tháng mong muốn (trong trường hợp này là tháng 2) được gán cho biến iMonth và iCurYear được đặt thành năm hiện tại. Sau đó, số ngày trong tháng và năm đó được tính toán và lưu trữ trong iNumDays.

Hai vòng lặp For …​ Next đi qua mỗi ngày và mỗi ca làm việc, sao chép trang tính Chính và đổi tên nó. Khi bạn hoàn tất, sổ làm việc của bạn sẽ có tất cả các trang tính mong muốn, được đặt tên chính xác. Tuy nhiên, bạn sẽ muốn cẩn thận rằng bạn không chạy macro hai lần trong cùng một tháng.

Nếu bạn làm vậy, lỗi sẽ được tạo ra vì bạn sẽ có các trang tính có tên trùng lặp trong sổ làm việc.

_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 (13730) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.