Artikoli

Eżempji ta 'Excel Macros miktuba b'VBA

L-eżempji makro sempliċi ta 'Excel li ġejjin inkitbu bl-użu ta' VBA 

Ħin tal-qari stmat: 3 minuta

Eżempju ta 'VBA bl-użu ta' Array

Il-proċedura Sub li ġejja taqra valuri miċ-ċelloli fil-kolonna A tal-worksheet attiva, sakemm tiltaqa 'ma' ċellula vojta. Il-valuri huma maħżuna f'firxa. Dan l-eżempju makro sempliċi ta’ Excel juri l-użu ta’:

  • Dikjarazzjonijiet varjabbli;
  • Arrays dinamiċi;
  • Ċiklu Do Until;
  • Irreferi għaċ-ċelloli fil-worksheet attwali ta 'Excel;
  • Il-funzjoni VBA Ubound builtin (li jirritorna l-ogħla indiċi ta’ firxa).
' 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

Il-proċedura taħżen il-valuri fil-kolonna A tal-worksheet attiva f'firxa, innota li:

  • Iċ-ċiklu Do Until estratti l-valuri ta 'kull ċellula fil-kolonna A tal-folja tax-xogħol attiva, filwaqt li tinjora ċ-ċelloli vojta
  • Il-kundizzjoni "If UBound(dCellValues) < iRow” jiċċekkja li l-firxa dCellValues ​​hija kbira biżżejjed biex iżżomm l-informazzjoni, jekk le, uża ReDim biex iżżid id-daqs tal-firxa b’10
  • Fl-aħħarnett, l-edukazzjoni​​dCellValues(iRow) = Cells(iRow, 1).Value” Taħżen iċ-ċellula kurrenti fil-firxa ta’ CellValues

Eżempju VBA b'operazzjonijiet matematiċi

Il-proċedura Sub li ġejja taqra l-valuri mill-kolonna A tal-folja tax-xogħol bl-isem "Sheet2" u twettaq operazzjonijiet aritmetiċi fuq il-valuri. Il-valuri li jirriżultaw huma stampati fil-kolonna A tal-worksheet attiva attwali.

Din il-makro turi:

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.
  • Dikjarazzjonijiet varjabbli;
  • Oġġetti Excel (speċifikament, użu tal-kelma prinċipali Set u kif aċċess għall-oġġett 'Kolonni' mill-oġġett 'Folji');
  • Ċiklu Do Until;
  • Aċċessa worksheets u firxiet ta 'ċelluli fil-ktieb tax-xogħol attwali ta' 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

Eżempju VBA b'reġistrazzjoni tad-data tal-modifika

Ejja niktbu makro VBA sempliċi li tispara meta ċellola f'firxa speċifika tal-folja tagħna tiġi aġġornata. Ejja ngħidu li trid issegwi l-bidliet fil-kolonna B (B4 sa B11) u tirreġistra d-data u l-ħin tal-bidla fil-kolonna A.
Ejja nipproċedu hekk:

  • Fit-tab Developer ikklikkja fuq l-għażla "Visual Basic” biex tiftaħ l-editur VBA.
  • Fl-editur VBA, ikklikkja darbtejn fuq l-editur tal-kodiċi relatat ma 'Sheet2.
  • Agħżel Worksheet mit-tab tal-lemin (jew tax-xellug) u agħżel l-għażla Bidla.
  • Żid il-kodiċi 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

Issejvja l-ktieb tax-xogħol bil-macros attivati ​​(per eżempju, bħala fajl .xlsm).


Issa, kull darba li naġġornaw ċellula fil-kolonna B (minn ringiela 1 sa ringiela 10), iċ-ċellula fil-kolonna A awtomatikament turi d-data u l-ħin kurrenti.

Ercole Palmeri

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.

Artikoli riċenti

Veeam għandu l-aktar appoġġ komprensiv għar-ransomware, mill-protezzjoni għar-rispons u l-irkupru

Coveware minn Veeam se jkompli jipprovdi servizzi ta' rispons għal inċidenti ta' estorsjoni ċibernetika. Coveware se joffri forensiċi u kapaċitajiet ta' rimedju...

April 23 2024

Rivoluzzjoni Ekoloġika u Diġitali: Kif il-Manutenzjoni Predittiva qed tittrasforma l-Industrija taż-Żejt u l-Gass

Il-manutenzjoni ta’ tbassir qed tirrivoluzzjona s-settur taż-żejt u l-gass, b’approċċ innovattiv u proattiv għall-ġestjoni tal-impjant...

April 22 2024

Ir-regolatur tal-antitrust tar-Renju Unit iqajjem allarm ta’ BigTech fuq GenAI

Is-CMA tar-Renju Unit ħarġet twissija dwar l-imġieba ta 'Big Tech fis-suq tal-intelliġenza artifiċjali. Hemm…

April 18 2024

Casa Green: rivoluzzjoni tal-enerġija għal futur sostenibbli fl-Italja

Id-Digriet "Case Green", ifformulat mill-Unjoni Ewropea biex itejjeb l-effiċjenza enerġetika tal-bini, ikkonkluda l-proċess leġiżlattiv tiegħu bi...

April 18 2024