So erstellen Sie mit VBA Script einen Kalender in Ihrem Excel-Arbeitsblatt

Jetzt teilen:

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.Kalender

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

  1. Drücken Sie die Taste „Alt + F11“ auf der Tastatur, um das Arbeitsblatt zu öffnen.
  2. Fügen Sie dann ein neues Modul in den Visual Basic-Editor ein.
  3. 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.

  1. Drücken Sie dann die Taste „F5“ auf der Tastatur.
  2. 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.Datum eingeben
  3. 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.Lösung

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

Jetzt teilen:

Kommentare sind geschlossen.