Артиколи

VBA көмегімен жазылған Excel макростарының мысалдары

Келесі қарапайым Excel макрос мысалдары VBA көмегімен жазылған 

Болжалды оқу уақыты: 3 минуты

Массивті қолданатын VBA мысалы

Келесі ішкі процедура бос ұяшыққа тап болғанша белсенді жұмыс парағының А бағанындағы ұяшықтардағы мәндерді оқиды. Мәндер массивте сақталады. Бұл қарапайым Excel макрос мысалының қолданылуын көрсетеді:

  • Айнымалы мәлімдемелер;
  • Динамикалық массивтер;
  • Цикл Do Until;
  • Ағымдағы Excel жұмыс парағындағы ұяшықтарды қараңыз;
  • VBA функциясы Ubound buildin (ол массивтің ең жоғары индексін қайтарады).
' Sub procedure store values in Column A of the active Worksheet
' into an array
Sub GetCellValues()
Dim iRow As Integer            ' stores the current row number
Dim dCellValues() As Double  ' array to store the cell values
iRow = 1
ReDim dCellValues(1 To 10)
' Do Until loop to extract the value of each cell in column A
' of the active Worksheet, as long as the cell is not blank
Do Until IsEmpty(Cells(iRow, 1))
   ' Check that the dCellValues array is big enough
   ' If not, use ReDim to increase the size of the array by 10
   If UBound(dCellValues) < iRow Then
      ReDim Preserve dCellValues(1 To iRow + 9)
   End If
   ' Store the current cell in the CellValues array
   dCellValues(iRow) = Cells(iRow, 1).Value
   iRow = iRow + 1
Loop
End Sub

Процедура белсенді жұмыс парағының А бағанындағы мәндерді массивте сақтайды, мынаны ескеріңіз:

  • Цикл Do Until бос ұяшықтарды елемей, белсенді жұмыс парағының А бағанындағы әрбір ұяшықтың мәндерін шығарады
  • шарты»If UBound(dCellValues) < iRowdCellValues ​​массивінің ақпаратты сақтау үшін жеткілікті үлкен екенін тексереді, егер жоқ болса, массив өлшемін 10-ға ұлғайту үшін ReDim пайдаланыңыз.
  • Ақырында, білім​​dCellValues(iRow) = Cells(iRow, 1).Value» Ағымдағы ұяшықты CellValues ​​массивінде сақтайды

Математикалық операциялармен VBA мысалы

Келесі Ішкі процедура «2-парақ» деп аталатын жұмыс парағының А бағанындағы мәндерді оқиды және мәндерге арифметикалық амалдарды орындайды. Алынған мәндер ағымдағы белсенді жұмыс парағының А бағанында басып шығарылады.

Бұл макрос мыналарды көрсетеді:

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.
  • Айнымалы мәлімдемелер;
  • Excel нысандары (нақтырақ айтқанда, Set кілт сөзін пайдалану және «Парактер» нысанынан «Бағандар» нысанына кіру жолы);
  • Цикл Do Until;
  • Ағымдағы Excel жұмыс кітабындағы жұмыс парақтары мен ұяшық ауқымдарына қол жеткізіңіз.
' Sub procedure to loop through the values in Column A of the Worksheet
' "Sheet2", perform arithmetic operations on each value, and write the
' result into Column A of the current Active Worksheet ("Sheet1")
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
' Set the variable 'Col' to be Column A of Sheet 2
Set Col = Sheets("Sheet2").Columns("A")
i = 1
' Loop through each cell of the column 'Col' until
' a blank cell is encountered
Do Until IsEmpty(Col.Cells(i))
   ' Apply arithmetic operations to the value of the current cell
   dVal = Col.Cells(i).Value * 2 + 1
   ' The command below copies the result into Column A
   ' of the current Active Worksheet - no need to specify
   ' the Worksheet name as it is the active Worksheet.
   Cells(i, 1) = dVal
   i = i + 1
Loop
End Sub

Өзгерту күні жазбасы бар VBA мысалы

Парақтың белгілі бір ауқымындағы ұяшық жаңартылған кезде іске қосылатын қарапайым VBA макросын жазайық. B бағанындағы өзгерістерді (B4 - B11) бақылап, А бағанындағы өзгеріс күні мен уақытын жазғыңыз келеді делік.
Осылай жалғастырайық:

  • Қойындыда Developer опциясын басыңыз»Visual BasicVBA өңдегішін ашу үшін ».
  • VBA өңдегішінде Sheet2-ге қатысты код өңдегішін екі рет басыңыз.
  • Оң жақ (немесе сол) қойындысынан Жұмыс парағын таңдап, Өзгерту опциясын таңдаңыз.
  • VBA кодын қосыңыз:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
        Target.Range("A1:A1").Value = Now
    End If
End Sub

Жұмыс кітабын макростар қосылған күйде сақтаңыз (мысалы, .xlsm файлы ретінде).


Енді B бағанындағы ұяшықты жаңартқан сайын (1-жолдан 10-жолға дейін), А бағанындағы ұяшық автоматты түрде ағымдағы күн мен уақытты көрсетеді.

Ercole Palmeri

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Соңғы мақалалар

Veeam қорғаныстан жауап беруге және қалпына келтіруге дейін төлемдік бағдарламалық құралға ең жан-жақты қолдау көрсетеді

Veeam ұсынған Coveware кибербопсалау оқиғаларына жауап беру қызметтерін көрсетуді жалғастырады. Coveware криминалистикалық және қалпына келтіру мүмкіндіктерін ұсынады ...

23 Сәуір 2024

Жасыл және цифрлық революция: болжамды техникалық қызмет көрсету мұнай және газ саласын қалай өзгертеді

Болжалды техникалық қызмет көрсету зауытты басқаруға инновациялық және белсенді көзқараспен мұнай және газ секторында төңкеріс жасайды.…

22 Сәуір 2024

Ұлыбританияның монополияға қарсы реттеушісі GenAI-ге қатысты BigTech дабылын көтереді

Ұлыбританияның CMA жасанды интеллект нарығындағы Big Tech әрекеті туралы ескерту жасады. Ана жерде…

18 Сәуір 2024

Casa Green: Италиядағы тұрақты болашақ үшін энергетикалық революция

Ғимараттардың энергия тиімділігін арттыру үшін Еуропалық Одақ тұжырымдаған «Жасыл үйлер» жарлығы өзінің заң шығару процесін аяқтады ...

18 Сәуір 2024

Инновацияны өз тіліңізде оқыңыз

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Артымыздан