Excel има широк спектър на използване. В тази статия ще ви покажем как да създадете календар в работен лист с помощта на макрос.
Освен за съхраняване и анализ на данни във вашия Excel, можете да го използвате и за завършване на други задачи. Например можете да събирате информация с помощта на Excel или можете да запишете планирането си в работния лист. Днес открихме нова употреба. Можете да създадете календар в работен лист. Можете да видите ефекта на изображението по-долу.
Можете да въведете някои задачи в този календар. И функцията е същата като меморандума. С помощта на Excel тези задачи ще бъдат по-ясни. Сега следвайте стъпките в следващата част и вижте как работи.
Създайте календар
- Натиснете бутона „Alt + F11“ на клавиатурата, за да отворите работния лист.
- И след това поставете нов модул в редактора на Visual Basic.
- Сега копирате следните кодове в новия модул:
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
По този начин е много самотен макрос. Но можете директно да го използвате. И не е нужно да го модифицирате.
- След това натиснете бутона „F5“ на клавиатурата.
- В изскачащия прозорец въведете датата на първия ден с формата „Година / месец / ден“. „Денят“ може да бъде всеки ден от този месец, тук ще въведем „1“.
- И след това щракнете върху бутона „OK“. След това ще се върнете към редактора. За да проверите резултата, можете да се върнете на работния лист.
Календарът вече се появи в работния лист. И курсорът ще бъде позициониран в празната клетка на първия ден.
От друга страна, ако не сте доволни от формата на клетките, можете също да промените кодовете според вашите предпочитания. С този календар със сигурност ще подобрите ефективността на работата си.
Excel не е по-малко склонен към отказ
Ако използвате Excel често, няма да ви е трудно да откриете, че той винаги се поврежда. В повечето случаи, излизането от Excel и рестартирането му може да реши проблема. Понякога обаче ще се сблъскате със сериозна повреда в Excel. И в този момент можете да използвате нашия мощен инструмент, за да... поправка грешка в данните на Excel xlsxС помощта на този инструмент почти всички грешки могат да бъдат лесно решени.
Въведение на автора:
Ана Ма е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително поправяне на Word docx файл и outlook софтуерни продукти за ремонт. За повече информация посетете WWW.datanumen.com

