Excel có phạm vi sử dụng rộng rãi. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách tạo lịch trong trang tính bằng cách sử dụng macro.
Ngoại trừ việc lưu trữ và phân tích dữ liệu trong Excel, bạn cũng có thể sử dụng nó để hoàn thành các tác vụ khác. Ví dụ: bạn có thể thu thập thông tin bằng cách sử dụng Excel hoặc bạn có thể ghi lại kế hoạch của mình trong trang tính. Hôm nay chúng tôi đã tìm thấy một cách sử dụng mới. Bạn có thể tạo lịch trong trang tính. Bạn có thể thấy hiệu ứng trong hình dưới đây.
Bạn có thể nhập một số nhiệm vụ vào lịch này. Và chức năng giống như một bản ghi nhớ. Bằng cách sử dụng Excel, những nhiệm vụ đó sẽ rõ ràng hơn. Bây giờ hãy làm theo các bước trong phần sau và xem nó hoạt động như thế nào.
Tạo lịch
- Nhấn nút “Alt + F11” trên bàn phím để mở trang tính.
- Và sau đó chèn một mô-đun mới vào trình soạn thảo Visual Basic.
- Bây giờ sao chép các mã sau vào mô-đun mới:
Sub Create_Monthly_Calender()
Dim firstweekday As Integer, EndDay As Integer, _
FirstWeekColumnIndex As Integer, AssignmentDate As Integer, _
FirstCountNumber As Integer, SecondCountNumber As Integer, _
LastDay As Range, objRange As Range, RowIndexofLastday As Integer, FirstCountforTargetRange As Integer, SecondCountforTargetRange As Integer
firstday = InputBox("Input the year, month and the first day with this format: year/month/day")
If firstday = "" Then Exit Sub
Range("A1:G1").Merge
Range("A1") = Year(firstday) & "." & Month(firstday)
Range("A2") = "Sunday"
Range("A2").AutoFill Destination:=Range("A2:G2"), Type:=xlFillDefault
firstweekday = Application.WorksheetFunction.Weekday(firstday)
Cells(3, firstweekday) = 1
Select Case Month(firstday)
Case 1, 3, 5, 7, 8, 10, 12
EndDay = 31
Case 4, 6, 9, 11
EndDay = 30
Case 2
If (Year(firstday) Mod 4) = 0 And (Year(firstday) Mod 100) <> 0 Or ((Year(firstday) Mod 400) = 0) Then
EndDay = 29
Else
EndDay = 28
End If
End Select
For FirstWeekColumnIndex = 1 To (7 - firstweekday)
Cells(3, firstweekday).Offset(0, FirstWeekColumnIndex) = Cells(3, firstweekday).Offset(0, FirstWeekColumnIndex - 1) + 1
Next FirstWeekColumnIndex
AssignmentDate = Range("G3") + 1
For FirstCountNumber = 2 To 10 Step 2
For SecondCountNumber = 0 To 6
Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = AssignmentDate
AssignmentDate = AssignmentDate + 1
If Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = EndDay Then
Exit For
End If
Next SecondCountNumber
If Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = EndDay Then
Exit For
End If
Next FirstCountNumber
’set format for the range
With Range("A1")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Size = 16
.Font.Bold = True
.Interior.Color = RGB(196, 202, 201)
End With
With Range("A2:G2")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
For Each LastDay In ActiveSheet.UsedRange
If LastDay = EndDay Then
RowIndexofLastday = LastDay.Row
End If
Next
For FirstCountforTargetRange = RowIndexofLastday To 3 Step -2
With Range("A" & FirstCountforTargetRange, "G" & FirstCountforTargetRange)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.RowHeight = 20
End With
Next FirstCountforTargetRange
For SecondCountforTargetRange = RowIndexofLastday + 1 To 4 Step -2
With Range("A" & SecondCountforTargetRange, "G" & SecondCountforTargetRange)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
.RowHeight = 50
.ColumnWidth = 12
End With
Next SecondCountforTargetRange
Set objRange = Range("A1", "G" & (RowIndexofLastday + 1))
With objRange.Borders
.Color = vbBlack
.Weight = xlThin
.LineStyle = xlContinuous
End With
ActiveWindow.DisplayGridlines = False
Cells(3, firstweekday).Offset(1, 0).Select
End Sub
Vì vậy, là một macro rất đơn độc. Nhưng bạn có thể trực tiếp sử dụng nó. Và bạn không cần phải sửa đổi nó.
- Sau đó nhấn nút “F5” trên bàn phím.
- Trong cửa sổ bật lên, nhập ngày của ngày đầu tiên với định dạng “Năm/Tháng/Ngày”. “Ngày” có thể là bất kỳ ngày nào trong tháng này, ở đây chúng tôi sẽ nhập “1”.
- Và sau đó nhấp vào nút “OK”. Tiếp theo, bạn sẽ quay lại trình chỉnh sửa. Để kiểm tra kết quả, bạn có thể quay lại trang tính.
Lịch đã xuất hiện trong trang tính. Và con trỏ sẽ được định vị tại ô trống của ngày đầu tiên.
Mặt khác, nếu bạn không hài lòng với định dạng ô, bạn cũng có thể sửa đổi mã theo sở thích của mình. Với lịch này, bạn chắc chắn sẽ cải thiện hiệu quả công việc của mình.
Excel không ít bị lỗi hơn
Nếu bạn thường xuyên sử dụng Excel, chắc hẳn bạn sẽ dễ dàng nhận thấy Excel thường xuyên bị lỗi. Hầu hết các trường hợp, thoát khỏi Excel rồi khởi động lại có thể giải quyết được vấn đề. Tuy nhiên, đôi khi bạn sẽ gặp phải lỗi Excel nghiêm trọng. Và lúc này, bạn có thể sử dụng công cụ mạnh mẽ của chúng tôi để... sửa lỗi dữ liệu excel xlsxBằng cách sử dụng công cụ này, hầu hết các lỗi đều có thể được giải quyết dễ dàng.
Giới thiệu tác giả:
Anna Ma là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa chữa tệp Word docx và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm

