Excel hat ein breites Anwendungsspektrum. In diesem Artikel zeigen wir Ihnen, wie Sie mithilfe eines Makros einen Kalender in einem Arbeitsblatt erstellen.
Außer zum Speichern und Analysieren von Daten in Ihrem Excel können Sie damit auch andere Aufgaben erledigen. Sie können beispielsweise Informationen mithilfe von Excel erfassen oder Ihre Planung im Arbeitsblatt notieren. Heute haben wir eine neue Verwendung gefunden. Sie können einen Kalender in einem Arbeitsblatt erstellen. Sie können den Effekt im Bild unten sehen.
Sie können einige Aufgaben in diesen Kalender eingeben. Und die Funktion ist die gleiche wie bei einem Memorandum. Durch die Verwendung von Excel werden diese Aufgaben klarer. Befolgen Sie nun die Schritte im folgenden Teil und sehen Sie, wie es funktioniert.
Erstellen Sie einen Kalender
- Drücken Sie die Taste „Alt + F11“ auf der Tastatur, um das Arbeitsblatt zu öffnen.
- Fügen Sie dann ein neues Modul in den Visual Basic-Editor ein.
- Kopieren Sie nun die folgenden Codes in das neue Modul:
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
Somit ist ein sehr einsames Makro. Aber Sie können es direkt verwenden. Und Sie müssen es nicht ändern.
- Drücken Sie dann die Taste „F5“ auf der Tastatur.
- Geben Sie im Popup-Fenster das Datum des ersten Tages im Format „Jahr / Monat / Tag“ ein. Der "Tag" kann ein beliebiger Tag in diesem Monat sein, hier geben wir "1" ein.
- Und dann klicken Sie auf die Schaltfläche "OK". Als nächstes kehren Sie zum Editor zurück. Um das Ergebnis zu überprüfen, können Sie zum Arbeitsblatt zurückkehren.
Der Kalender wurde bereits im Arbeitsblatt angezeigt. Der Cursor befindet sich in der leeren Zelle des ersten Tages.
Wenn Sie jedoch mit dem Zellenformat nicht zufrieden sind, können Sie die Codes auch nach Ihren Wünschen ändern. Mit diesem Kalender können Sie Ihre Arbeitseffizienz verbessern.
Excel ist nicht weniger fehleranfällig
Wenn Sie Excel häufig nutzen, werden Sie feststellen, dass es immer wieder zu Datenbeschädigungen kommt. Meistens lässt sich das Problem durch Beenden und Neustarten von Excel beheben. Manchmal treten jedoch schwerwiegende Beschädigungen auf. In diesem Fall können Sie unser leistungsstarkes Tool verwenden, um … Excel xlsx Datenfehler reparierenMit diesem Werkzeug lassen sich fast alle Fehler problemlos beheben.
Einführung des Autors:
Anna Ma ist eine Datenrettungsexpertin in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich Reparieren Sie die Word-DocX-Datei und Outlook-Reparatursoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

