Үлгіні Excel VBA көмегімен қалай ашуға және толтыруға болады

Қазір бөлісу:

Excel шаблондары әдетте жұмыс кітаптары болып табылады, есеп беру шеңбері бар, көбінесе функциялар қолдайды. Шаблондарды (xltx) оны мәліметтермен ластамай қайта-қайта қолдануға болады. Толтырылғаннан кейін, жұмыс кітабының үлгісі xltx тың күйін сақтай отырып, xlsx ретінде сақталады.

Бұл жаттығуда біз шаблонды ашу және толтыру үшін VBA кодын қолданамыз. Үлгі Табуға болады Мұнда және Excel-дің макросты табуға болады Мұнда.

Бұл мақала оқырманға Әзірлеуші ​​лентасы көрсетілген және VBA редакторымен таныс деп болжайды. Олай болмаса, Google-дің «Excel Developer Tab» немесе «Excel Code Window» сұраймыз.

Үлгі

Біріншіден, біз деректермен, бұрылыс кестесімен және диаграммамен толтырылған жалған шаблон жасаймыз:

Жаңа Excel файлын ашыңыз. “Sheet1” - “Диаграмма”, “Sheet2” - “Data” деп өзгертіңіз

«Мәліметтер» қойындысының D1 мәтініне тақырыптарды қоса келесі мәтінді көшіріңіз:

Дирекция JobRef гендерлік
Балалар мен отбасы 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 ер
ресурстар RS CO2557 әйел
ресурстар RS HO2539 ер

Баған тақырыптарын қоса барлық деректерді таңдап, төменде көрсетілгендей «Деректер» парағының А1-ге бұрылыс кестесін салыңыз.«Деректер» парағының A1-ге жиынтық кесте салыңыз

Деректер көзі ретінде жиынтық кестені пайдаланып, «Диаграмма» қойындысында диаграмма жасаңыз.«Диаграмма» қойындысында диаграмма жасаңыз

D2: F15 ішіндегі деректерді алып тастаңыз. Жиынтық кестенің деректер ауқымын қалпына келтіру қажет емес; деректер болмаса да, оны толығымен қалдырыңыз.  D2: F15 ішіндегі деректерді алып тастаңыз

Жұмыс кітабын «Вакансиялық үлгі.xltx. ” макро жұмыс кітабы орналасқан каталогта. Сақтау кезінде Excel-ден келген ескертулерге «Жоқ» деп жауап беріңіз.

Бізге есептер ішкі каталогы қажет болады. Мысалға:

Excel есептері (xlsm осында сақталған)

| _үлгілер (xlxt осында сақталған)

       | _Есептер (әрбір xlsx осында сақталады)

Ретінде сақталды xltx, үлгіні жабыңыз

Макро

Біздің кодты сақтау үшін жаңа жұмыс кітабын ашыңыз. “Sheet1” - “Main”, “Sheet2” - “Database” деп өзгертіңіз.

Қосымшаны басқару үшін «Негізгі» батырмасын орналастырыңыз.

Әдетте мәліметтер базасынан мәліметтер алынады. Барлығында бірдей мәліметтер қоры бола бермейтіндіктен, «Деректер базасы» парағы мәліметтер қорының кестесін еліктейді.

-Дан табылған деректерді көшіріңізtarосы мақаланың А1-де «Деректер базасы» қойындысына…Табылған деректерді көшіріңізtart Осы мақаланың мәліметтер базасындағы қойындыға 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 lib сілтемесіне жүгіну керекrarж. Мұны Код терезесіндегі Құралдар> Сілтемелер арқылы жасаңыз.Белсенді X Library

Кодты тексеріп көріңіз

«Негізгі» батырмасын келесіге тағайындаңыз Ашық жұмыс кітабы. Жұмыс кітабын «Үлгілерді толтыру.xlsm» ретінде сақтаңыз.

Жұмыс кітабын жауып, оны қайта ашыңыз.

Нәтижені көру үшін батырманы басыңыз. «Деректер базасындағы» мәліметтер қатарының санын көбейтіп, диаграмма қосымша ақпаратпен жаңартылғанын тексеріп, қайта іске қосыңыз.

Жоғарыдағы кодта біз үлгіні ертерек көрсеттік XL.Visible = Рас. Тірі ортада мұны ең соңында жасауға болады, осылайша экран жаңартулары көрінбейді.

Деректер апатымен күресу!

Әдетте дамыған Excel файлынан, бастапқы файлды бүлдіріп, резервтік көшірмесінен гөрі аз нәрсе көңілсіз. Мұндай жағдайларда, егер Excel бүлінген файлды қалпына келтіре алмаса, онда барлық жұмыс l боладыost егер сізге ыңғайлы құрал болмаса Excel бағдарламасын түзетіңіз файлдар.

Сондай-ақ құнды жұмыстың сақтық көшірмесін жиі жасау қажет.

Автордың кіріспесі:

Феликс Хукер - деректерді қалпына келтіру бойынша сарапшы DataNumen, Соның ішінде деректерді қалпына келтіру технологиялары бойынша әлемдік көшбасшы болып табылатын Inc. rar жөндеу және SQL қалпына келтіру бағдарламалық жасақтама өнімдері. Қосымша ақпарат алу үшін кіріңіз WWW.datanumen.com

Қазір бөлісу:

Пікірлер жабылды.