VBA skripti bilan Excel ish varag'ida kalendarni qanday yaratish mumkin

Hozir ulashing:

Excel keng foydalanish doirasiga ega. Ushbu maqolada biz sizga makros yordamida ish varag'ida taqvim yaratishni ko'rsatamiz.

Excelda ma'lumotlarni saqlash va tahlil qilishdan tashqari, siz undan boshqa vazifalarni bajarish uchun ham foydalanishingiz mumkin. Misol uchun, siz Excel yordamida ma'lumot to'plashingiz mumkin yoki rejangizni ish varag'iga yozib qo'yishingiz mumkin. Bugun biz yangi foydalanishni topdik. Siz ishchi varaqda taqvim yaratishingiz mumkin. Quyidagi rasmda effektni ko'rishingiz mumkin.kalendar

Ushbu kalendarga ba'zi vazifalarni kiritishingiz mumkin. Va funksiya memorandum bilan bir xil. Exceldan foydalangan holda, bu vazifalar aniqroq bo'ladi. Endi keyingi qismdagi amallarni bajaring va uning qanday ishlashini ko'ring.

Kalendar yarating

  1. Ish varag'ini ochish uchun klaviaturadagi "Alt + F11" tugmasini bosing.
  2. Va keyin Visual Basic muharririga yangi modul qo'shing.
  3. Endi quyidagi kodlarni yangi modulga nusxalash:
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

Shunday qilib, juda yolg'iz makro. Ammo siz uni to'g'ridan-to'g'ri ishlatishingiz mumkin. Va siz uni o'zgartirishingiz shart emas.

  1. Keyin klaviaturadagi "F5" tugmasini bosing.
  2. Qalqib chiquvchi oynada birinchi kunning sanasini “Yil/oy/kun” formatida kiriting. "Kun" bu oyning istalgan kuni bo'lishi mumkin, bu erda biz "1" ni kiritamiz.Kirish sanasi
  3. Va keyin "OK" tugmasini bosing. Keyin muharrirga qaytasiz. Natijani tekshirish uchun siz ish varag'iga qaytishingiz mumkin.

Kalendar allaqachon ish varag'ida paydo bo'lgan. Va kursor birinchi kunning bo'sh katagiga joylashtiriladi.natija

Boshqa tomondan, agar siz hujayralar formatidan qoniqmasangiz, kodlarni o'zingizning xohishingizga ko'ra o'zgartirishingiz mumkin. Ushbu taqvim yordamida siz ish samaradorligini oshirishga ishonchingiz komil.

Excel muvaffaqiyatsizlikka kamroq moyil emas

Agar siz Exceldan tez-tez foydalansangiz, Excelning har doim buzilib qolishini aniqlash siz uchun qiyin bo'lmaydi. Ko'pincha Exceldan chiqing va keyin uni qayta ishga tushiring, bu muammoni hal qilishi mumkin. Biroq, ba'zida siz Excelning jiddiy buzilishiga duch kelasiz. Va hozirda siz bizning kuchli vositamizdan foydalanishingiz mumkin, buning uchun Excel xlsx ma'lumotlar xatosini tuzatishUshbu vositadan foydalanish orqali deyarli barcha xatolarni osongina hal qilish mumkin.

Muallif kirish:

Anna Ma ma'lumotlarni qayta tiklash bo'yicha mutaxassis DataNumenMa'lumotlarni qayta tiklash texnologiyalari bo'yicha jahon yetakchisi bo'lgan , Inc Word docx faylini tuzatish va Outlook ta'mirlash dasturiy mahsulotlar. Qo'shimcha ma'lumot olish uchun tashrif buyuring www.datanumen.com

Hozir ulashing:

Comments are closed.