Cara Membuat Kalender di Lembar Kerja Excel Anda dengan VBA Script

Bagikan sekarang:

Excel memiliki berbagai macam penggunaan. Di artikel ini, kami akan menunjukkan cara membuat kalender di lembar kerja menggunakan makro.

Kecuali untuk menyimpan dan menganalisis data di Excel Anda, Anda juga bisa menggunakannya untuk menyelesaikan tugas lain. Misalnya, Anda bisa mengumpulkan informasi dengan menggunakan Excel, atau Anda bisa mencatat perencanaan Anda di lembar kerja. Hari ini kami telah menemukan penggunaan baru. Anda dapat membuat kalender di lembar kerja. Anda dapat melihat efeknya pada gambar di bawah.Kalender

Anda dapat memasukkan beberapa tugas ke dalam kalender ini. Dan fungsinya sama dengan memorandum. Dengan menggunakan Excel, tugas-tugas tersebut akan menjadi lebih jelas. Sekarang ikuti langkah-langkah di bagian berikut dan lihat cara kerjanya.

Buat Kalender

  1. Tekan tombol “Alt + F11” pada keyboard untuk membuka lembar kerja.
  2. Dan kemudian masukkan modul baru ke dalam editor Visual Basic.
  3. Sekarang menyalin kode berikut ke modul baru:
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

Jadi makro yang sangat tunggal. Tapi Anda bisa langsung menggunakannya. Dan Anda tidak perlu memodifikasinya.

  1. Kemudian tekan tombol “F5” di keyboard.
  2. Pada pop up window, masukan tanggal hari pertama dengan format “Tahun / Bulan / Hari”. “Hari” bisa hari apa saja di bulan ini, disini kita isikan “1”.Tanggal Input
  3. Dan kemudian klik tombol "OK". Selanjutnya Anda akan kembali ke editor. Untuk memeriksa hasilnya, Anda dapat kembali ke lembar kerja.

Kalender sudah muncul di lembar kerja. Dan kursor akan diposisikan di sel kosong hari pertama.Hasil

Di sisi lain, jika Anda tidak puas dengan format sel, Anda juga dapat mengubah kode sesuai dengan preferensi Anda. Dengan kalender ini, Anda pasti bisa meningkatkan efisiensi kerja Anda.

Excel Tidak Kurang Rawan Kegagalan

Jika Anda sering menggunakan Excel, Anda pasti sering mengalami masalah file Excel yang rusak. Biasanya, menutup Excel lalu membukanya kembali dapat menyelesaikan masalah. Namun, terkadang Anda akan mengalami kerusakan Excel yang parah. Dan pada saat itulah, Anda dapat menggunakan alat canggih kami untuk... memperbaiki kesalahan data Excel xlsxDengan menggunakan alat ini, hampir semua kesalahan dapat diatasi dengan mudah.

Pengantar Penulis:

Anna Ma adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk perbaiki file Word docx dan produk perangkat lunak perbaikan pandangan. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.