VBA скрипт ашиглан Excel-ийн ажлын хуудсандаа хуанли хэрхэн үүсгэх

Одоо хуваалцах:

Excel нь өргөн хүрээний хэрэглээтэй байдаг. Энэ нийтлэлд бид макро ашиглан хуанли хэрхэн ажлын хуудсанд бүтээхийг зааж өгөх болно.

Өөрийн Excel-д өгөгдөл хадгалах, дүн шинжилгээ хийхээс бусад тохиолдолд үүнийг бусад ажлуудыг дуусгахад ашиглаж болно. Жишээлбэл, та Excel програм ашиглан мэдээлэл цуглуулах эсвэл төлөвлөгөөгөө ажлын хуудсандаа тэмдэглэж авах боломжтой. Өнөөдөр бид шинэ хэрэглээгээ оллоо. Та ажлын хуудсан дээр хуанли үүсгэх боломжтой. Та доорх зурган дээрх үр нөлөөг харж болно.Хуанли

Та энэ хуанлид зарим даалгаврыг оруулах боломжтой. Чиг үүрэг нь санамж бичигтэй ижил юм. Excel програмыг ашигласнаар эдгээр ажлууд илүү тодорхой болно. Одоо дараах хэсгийн алхамуудыг дагаж, хэрхэн ажилладагийг үзээрэй.

Хуанли үүсгэх

  1. Ажлын хуудсыг нээхийн тулд гар дээрх "Alt + F11" товчийг дарна уу.
  2. Дараа нь Visual Basic редакторт шинэ модуль оруулна уу.
  3. Одоо дараахь кодыг шинэ модуль руу хуулж аваарай.
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

Энэ бол маш цорын ганц макро юм. Гэхдээ та үүнийг шууд ашиглаж болно. Та үүнийг өөрчлөх шаардлагагүй.

  1. Дараа нь гар дээрх “F5” товчийг дарна уу.
  2. Гарч ирэх цонхонд “Өдөр / сар / өдөр” форматаар эхний өдрийн огноог оруулна уу. “Өдөр” нь энэ сарын аль ч өдөр байж болох тул энд “1” оруулна.Оруулсан огноо
  3. Дараа нь "OK" товчийг дарна уу. Дараа нь та редактор дээр эргэж ирнэ. Үр дүнг шалгахын тулд та ажлын хуудас руу буцаж орж болно.

Хуанли аль хэдийн ажлын хуудсан дээр гарч ирэв. Мөн курсорыг эхний өдрийн хоосон нүдэнд байрлуулна.үр дүн

Нөгөөтэйгүүр, хэрэв та нүдний форматад сэтгэл хангалуун бус байгаа бол кодыг өөрийн үзэмжийн дагуу өөрчилж болно. Энэхүү хуанлийн тусламжтайгаар та ажлын үр ашгаа дээшлүүлэх нь дамжиггүй.

Excel нь бүтэлгүйтэх магадлал багатай байдаг

Хэрэв та Excel-ийг байнга ашигладаг бол Excel үргэлж эвдэрдэг гэдгийг олж мэдэхэд танд хэцүү биш байх болно. Ихэнх тохиолдолд Excel-ээс гараад дахин эхлүүлснээр асуудлыг шийдэж болно. Гэсэн хэдий ч заримдаа та Excel-ийн ноцтой эвдрэлтэй тулгарах болно. Энэ үед та манай хүчирхэг хэрэгслийг ашиглан... Excel xlsx өгөгдлийн алдааг засахЭнэ хэрэгслийг ашигласнаар бараг бүх алдааг амархан засах боломжтой.

Зохиогчийн танилцуулга:

Анна Ма бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. Word docx файлыг засах програм хангамжийн бүтээгдэхүүнийг засах хэтийн төлөв. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com

Одоо хуваалцах:

Тайлбарууд нь хаалттай байна.