Excel VBA-тай загварыг хэрхэн нээж, хэрхэн яаж дүүргэх вэ

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

Excel Templates нь ихэвчлэн ажлын дэвтэр бөгөөд тайлагнах хүрээтэй, ихэвчлэн функцээр дэмжигддэг. Загваруудыг (xltx) өгөгдлөөр бохирдуулахгүйгээр дахин дахин ашиглаж болно. Өгөгдөлтэй болсны дараа ажлын товхимлын загварыг xlsx хэлбэрээр хадгалж, xltx-ийн онгон байдлыг хадгална.

Энэ дасгалд бид VBA кодыг ашиглан загварыг нээж, дүүргэх болно. Загвар олж болно энд болон ашигласан Excel-ийн макро олж болно энд.

Энэ нийтлэл нь уншигчдад Developer туузыг харуулсан бөгөөд VBA редакторыг сайн мэддэг гэж үзнэ. Хэрэв үгүй ​​бол Google-ийн “Excel Developer Tab” эсвэл “Excel Code Window” -ийг ашиглана уу.

Загвар

Нэгдүгээрт, бид өгөгдөл, пивот хүснэгт, диаграммаар дүүргэсэн дамми загварыг дараах байдлаар бүтээх болно.

Шинэ Excel файл нээнэ үү. "Хуудас1" -ийг "Диаграм", "Хуудас2" -ийг "Мэдээлэл" гэж өөрчлөх

Дараах текст, гарчгийг оруулаад “Мэдээлэл” табын D1 руу хуулж ав.

Захиргаа Ажлын лавлагаа Жендерийн
Хүүхэд ба гэр бүл CH SW2588 эмэгтэй
Хүүхэд ба гэр бүл CH RS2775 эмэгтэй
Хүүхэд ба гэр бүл CH SW2630 эмэгтэй
Хүүхэд ба гэр бүл CH RS2775 Эрэгтэй
Хүүхэд ба гэр бүл CH CC2628 эмэгтэй
Хүүхэд ба гэр бүл CH HT2579 эмэгтэй
Олон нийтийн эрүүл мэнд CW T (2559.) эмэгтэй
Олон нийтийн эрүүл мэнд CW QS2774 эмэгтэй
Олон нийтийн эрүүл мэнд CW O2745 Эрэгтэй
Байгаль орчны EE SM2814 эмэгтэй
Байгаль орчны EE IT2772 Эрэгтэй
Байгаль орчны EE SO2784 Эрэгтэй
Mongolia RS CO2557 эмэгтэй
Mongolia RS HO2539 Эрэгтэй

Баганын гарчгийг оруулаад бүх өгөгдлийг сонгоод "Өгөгдөл" хуудасны А1 дээр пивот хүснэгт оруулна уу.Пивот хүснэгтийг "Мэдээллийн хуудас" -ын А1 хэсэгт оруулна уу

Пивот хүснэгтийг мэдээллийн эх үүсвэр болгон ашиглан "Диаграм" таб дээр диаграм үүсгээрэй."Диаграм" таб дээр диаграм үүсгэх

D2: F15 дэх өгөгдлийг устгана уу. Пивот хүснэгтийн өгөгдлийн мужийг дахин тохируулах шаардлагагүй; өгөгдөл байхгүй байсан ч гэсэн хүн амаа үлдээх.  D2: F15 дэх өгөгдлийг устгах

Ажлын номоо “VacancyTemplate.xltx. ” макро ажлын дэвтэр байрлах дэд директор дотор. Хадгалах явцад Excel-ээс ирсэн аливаа анхааруулгад "Үгүй" гэж хариулна уу.

Бидэнд Reports дэд лавлах хэрэгтэй болно. Жишээлбэл:

Excel-ийн тайлан (xlsm энд хадгалагдсан)

| _загварууд (xlxt энд хадгалагдсан)

       | _Тайлан (xlsx бүрийг энд хадгалсан)

Нэг удаа xltx, загварыг хаах

Макро

Манай кодыг хадгалахын тулд шинэ ажлын дэвтэр нээнэ үү. "Хуудас1" -ийг "Үндсэн", "Хуудас2" -ийг "Мэдээллийн сан" болгон өөрчил.

Програмыг жолоодохын тулд "Main" дээр товчлуурыг байрлуул.

Ердийн үед өгөгдлийг мэдээллийн сангаас авдаг. Хүн бүр мэдээллийн санд тохирохгүй тул "Мэдээллийн сан" хуудас нь өгөгдлийн сангийн хүснэгтийг дууриах болно.

Энэ нийтлэлийн эхэнд байгаа өгөгдлийг A1 дээрх "Өгөгдлийн сан" таб руу хуулж оруулна уу...Энэ нийтлэлийн эхэнд байгаа өгөгдлийг A1 дээрх мэдээллийн сангийн таб руу хуулж ав

Дүрэм

Доорх кодын бүтэц нь процессуудыг тодорхой тодорхойлдог.

  • Өгөгдлийг "мэдээллийн сан" -аас авах;
  • Загварыг нээх;
  • Загварыг өгөгдлөөр дүүргэж, пивот хүснэгтийн өгөгдлийн мужийг дахин тохируулах;
  • Загварыг тайлан болгон хадгал
Option Explicit
    'Create objects to represent the template workbook and worksheets
    Public wb As Object
    Public XL As Object
    Public connDB As New ADODB.Connection
    Public rs As ADODB.Recordset
    Public eRow As Integer
    Public eRec As Integer
    Public dDate As String

Sub openWorksheet()
    Call GetData
    Call OpenTemplate
    Call PopulateTemplate
    
    'Save template as datestamped xlsx
    On Error Resume Next
    dDate = Format(Now(), "yyyy.mm.dd")
    wb.SaveAs Filename:=ActiveWorkbook.Path & "\Reports\Vacancies" & dDate & ".xlsx", _
         FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

     Sheets("Main").Activate        'Move off the database tab
     wb.Activate            'Bring the chart to the fore
     Set wb = Nothing
     Set XL = Nothing
     Set rs = Nothing
     Set connDB = Nothing
End Sub

Sub GetData()
    'Emulate database retrieval
    If connDB.State = 1 Then connDB.Close
    Sheets("Database").Activate
    Sheets("Database").Range("A1").Select
    Selection.End(xlDown).Select
    
    eRec = ActiveCell.Row - 1 'establish how many records will be in the recordset
                     'This step won't be needed in a database environment
    eRow = ActiveCell.Row   'the end row, used later in the template
    
    connDB.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
      "Data Source=" & ActiveWorkbook.FullName & ";" & _
      "Extended Properties=Excel 12.0;"
        
    Set rs = New ADODB.Recordset
    rs.Open "Select top " & eRec & " * from [Database$]", connDB, , , adCmdText
End Sub

 Sub OpenTemplate()
    Set XL = CreateObject("Excel.Application")
    XL.Visible = True       'enables us to see what's happening on debug.
    XL.Workbooks.Add ActiveWorkbook.Path & "\Templates\VacancyTemplate.xltx"
    Set wb = XL.ActiveWorkbook             'the new workbook is referenced by "wb"
 End Sub
 
 Sub PopulateTemplate()
    wb.Sheets("Data").Activate
    wb.Sheets("Data").Range("D2").CopyFromRecordset rs
    wb.Sheets("Data").Range("A1").Select
    
    'resize the range driving the pivot table, using the eRow variable.
    wb.Sheets("Data").PivotTables("PivotTable1").ChangePivotCache wb. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Data!R1C4:R" & eRow & "C6", _
        Version:=xlPivotTableVersion14)
    wb.Sheets("Chart").Select

 End Sub

ActiveX өгөгдлийн объектууд

Өгөгдлийн сангийн уншлагыг дуурайлган хийхийн тулд бид Active X санг лавлах ёстой. Үүнийг кодын цонхноос Tools>References цэсээр дамжуулан хийнэ үү.Active X номын санг лавлана уу

Кодыг туршиж үзээрэй

"Үндсэн" дээрх товчлуурыг онооно уу Дэд ажлын ном. Ажлын номоо “Загварчлах маягтууд .xlsm” хэлбэрээр хадгална уу.

Ажлын номыг ХААЖ, дахин нээнэ үү.

Үр дүнг харах товчийг дарна уу. “Мэдээллийн сан” дахь өгөгдлийн мөрүүдийн тоог нэмэгдүүлж, Диаграмыг нэмэлт мэдээллээр шинэчилсэн эсэхийг шалгаж дахин ажиллуулна уу.

Дээрх код дээр бид загварыг эрт харуулсан болно XL.Visible = Үнэн. Амьд орчинд үүнийг төгсгөлд нь хийж болох бөгөөд ингэснээр дэлгэцийн шинэчлэлтүүд харагдахгүй болно.

Мэдээллийн гамшигтай тэмцээрэй!

Маш их хөгжүүлсэн Excel файл гацаж, эх файл нь эвдэрч, нөөц хуулбар байхгүй болохоос илүү бухимдал төрүүлэм зүйл цөөхөн байдаг. Ийм тохиолдолд Excel гэмтсэн файлыг сэргээж чадахгүй бол танд туслах хэрэгсэл байхгүй л бол түүгээр хийсэн бүх ажил алдагдана. Excel-ийг засах файлууд.

Үнэ цэнэтэй бүтээлээ байнга нөөцлөх нь ухаалаг хэрэг юм.

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

Феликс Хүүкер бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. rar засвар болон sql сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com

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

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