Artikuj

Shembuj të makrove Excel të shkruar me VBA

Shembujt e mëposhtëm të thjeshtë të makro Excel janë shkruar duke përdorur VBA 

Koha e parashikuar e leximit: 3 minuti

Shembull VBA duke përdorur Array

Procedura e mëposhtme Nën lexon vlerat nga qelizat në kolonën A të fletës aktive të punës, derisa të ndeshet me një qelizë bosh. Vlerat ruhen në një grup. Ky shembull i thjeshtë makro Excel ilustron përdorimin e:

  • Deklaratat e ndryshueshme;
  • Vargjet dinamike;
  • Një cikël Do Until;
  • Referojuni qelizave në fletën e punës aktuale të Excel;
  • Funksioni VBA Ubound ndërtuar (i cili kthen indeksin më të lartë të një grupi).
' 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

Procedura ruan vlerat në kolonën A të fletës aktive të punës në një grup, vini re se:

  • Cikli Do Until nxjerr vlerat e secilës qelizë në kolonën A të fletës aktive të punës, duke injoruar qelizat bosh
  • Gjendja "If UBound(dCellValues) < iRow” kontrollon që grupi dCellValues ​​është mjaft i madh për të mbajtur informacionin, nëse jo, përdorni ReDim për të rritur madhësinë e grupit me 10
  • Së fundi, arsimi​​dCellValues(iRow) = Cells(iRow, 1).Value” Ruan qelizën aktuale në grupin CellValues

Shembull VBA me veprime matematikore

Procedura e mëposhtme Nën lexon vlerat nga kolona A e fletës së punës me emrin "Sheet2" dhe kryen veprime aritmetike mbi vlerat. Vlerat që rezultojnë shtypen në kolonën A të fletës aktuale të punës.

Kjo makro ilustron:

Buletini i inovacionit
Mos humbisni lajmet më të rëndësishme mbi inovacionin. Regjistrohuni për t'i marrë ato me email.
  • Deklaratat e ndryshueshme;
  • Objektet e Excel (veçanërisht, përdorimi i fjalës kyçe Set dhe si të aksesoni objektin 'Columns' nga objekti 'Sheets');
  • Një cikël Do Until;
  • Përdorni fletët e punës dhe diapazonin e qelizave në librin aktual të Excel-it.
' 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

Shembull VBA me regjistrimin e datës së modifikimit

Le të shkruajmë një makro të thjeshtë VBA që ndizet kur përditësohet një qelizë në një gamë specifike të fletës sonë. Supozoni se dëshironi të gjurmoni ndryshimet në kolonën B (B4 në B11) dhe të regjistroni datën dhe orën e ndryshimit në kolonën A.
Le të vazhdojmë kështu:

  • Në skedë Developer klikoni në opsionin "Visual Basic” për të hapur redaktorin VBA.
  • Në redaktorin VBA, klikoni dy herë redaktorin e kodit që lidhet me Sheet2.
  • Zgjidhni fletën e punës nga skeda e djathtë (ose majtas) dhe zgjidhni opsionin Ndrysho.
  • Shto kodin 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

Ruani librin e punës me makro të aktivizuara (për shembull, si skedar .xlsm).


Tani, sa herë që përditësojmë një qelizë në kolonën B (nga rreshti 1 në rreshtin 10), qeliza në kolonën A do të shfaqë automatikisht datën dhe kohën aktuale.

Ercole Palmeri

Buletini i inovacionit
Mos humbisni lajmet më të rëndësishme mbi inovacionin. Regjistrohuni për t'i marrë ato me email.

Artikujt e fundit

Veeam përmban mbështetjen më të plotë për ransomware, nga mbrojtja te përgjigja dhe rikuperimi

Coveware nga Veeam do të vazhdojë të ofrojë shërbime të reagimit ndaj incidenteve të zhvatjes kibernetike. Coveware do të ofrojë aftësi mjeko-ligjore dhe riparimi…

23 Prill 2024

Revolucioni i gjelbër dhe dixhital: Si mirëmbajtja parashikuese po transformon industrinë e naftës dhe gazit

Mirëmbajtja parashikuese po revolucionon sektorin e naftës dhe gazit, me një qasje inovative dhe proaktive për menaxhimin e impiantit.…

22 Prill 2024

Rregullatori antitrust në Mbretërinë e Bashkuar ngre alarmin e BigTech mbi GenAI

CMA e Mbretërisë së Bashkuar ka lëshuar një paralajmërim për sjelljen e Big Tech në tregun e inteligjencës artificiale. Aty…

18 Prill 2024

Casa Green: revolucion energjetik për një të ardhme të qëndrueshme në Itali

Dekreti "Case Green", i formuluar nga Bashkimi Evropian për të rritur efiçencën energjetike të ndërtesave, ka përfunduar procesin e tij legjislativ me…

18 Prill 2024