artikels

Foarbylden fan Excel-makro's skreaun mei VBA

De folgjende ienfâldige Excel-makrofoarbylden waarden skreaun mei VBA 

Skatte lêstiid: 3 minuten

VBA foarbyld mei Array

De folgjende Sub-proseduere lêst wearden fan sellen yn kolom A fan it aktive wurkblêd, oant it in lege sel tsjinkomt. De wearden wurde opslein yn in array. Dit ienfâldige Excel-makro-foarbyld yllustrearret it gebrûk fan:

  • Fariabele deklaraasjes;
  • dynamyske arrays;
  • In syklus Do Until;
  • Ferwize nei sellen yn it aktuele Excel-wurkblêd;
  • De VBA funksje Ubound ynboud (dat jout de heechste yndeks fan in array).
' 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

De proseduere bewarret de wearden yn kolom A fan it aktive wurkblêd yn in array, tink derom dat:

  • De syklus Do Until ekstrakt de wearden fan elke sel yn kolom A fan it aktive wurkblêd, negearje lege sellen
  • De betingst"If UBound(dCellValues) < iRow” kontrolearret dat de dCellValues-array grut genôch is om de ynformaasje te hâlden, as net, brûk ReDim om de grutte fan 'e array mei 10 te fergrutsjen
  • As lêste, ûnderwiis​​dCellValues(iRow) = Cells(iRow, 1).Value"Bewarret de hjoeddeistige sel yn 'e CellValues-array

VBA foarbyld mei wiskundige operaasjes

De folgjende Sub-proseduere lêst de wearden út kolom A fan it wurkblêd mei de namme "Sheet2" en fiert rekenkundige operaasjes út op 'e wearden. De resultearjende wearden wurde printe yn kolom A fan it aktive wurkblêd.

Dizze makro yllustrearret:

Ynnovaasje nijsbrief
Mis it wichtichste nijs oer ynnovaasje net. Meld jo oan om se fia e-post te ûntfangen.
  • Fariabele deklaraasjes;
  • Excel-objekten (spesifyk gebrûk fan it kaaiwurd Set en hoe't jo tagong krije ta it 'Kolommen'-objekt fan it 'Sheets'-objekt);
  • In syklus Do Until;
  • Tagong ta wurkblêden en selberiken yn it hjoeddeiske Excel-wurkboek.
' 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 foarbyld mei modifikaasje datum opname

Litte wy in ienfâldige VBA-makro skriuwe dy't fjoer as in sel yn in spesifyk berik fan ús blêd wurdt bywurke. Stel dat jo wizigingen yn kolom B (B4 oant B11) folgje wolle en de datum en tiid fan 'e feroaring yn kolom A opnimme.
Litte wy sa fierder gean:

  • Yn 'e ljepper Developer klik op opsje "Visual Basic” om de VBA-bewurker te iepenjen.
  • Dûbelklik yn 'e VBA-bewurker op' e koade-bewurker dy't relatearre is oan Sheet2.
  • Kies Wurkblêd fan 'e rjochter (of lofts) ljepper en selektearje de opsje Feroarje.
  • Foegje VBA-koade ta:
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

Bewarje it wurkboek mei makro's ynskeakele (bygelyks as in .xlsm-bestân).


No, elke kear as wy in sel yn kolom B bywurkje (fan rige 1 oant rige 10), sil de sel yn kolom A automatysk de aktuele datum en tiid werjaan.

Ercole Palmeri

Ynnovaasje nijsbrief
Mis it wichtichste nijs oer ynnovaasje net. Meld jo oan om se fia e-post te ûntfangen.

Recent articles

Veeam hat de meast wiidweidige stipe foar ransomware, fan beskerming oant antwurd en herstel

Coveware troch Veeam sil trochgean mei it leverjen fan antwurdtsjinsten foar cyberafpersing ynsidint. Coveware sil forensyske en sanearjen mooglikheden oanbiede ...

23 april 2024

Griene en digitale revolúsje: hoe foarsizzend ûnderhâld de oalje- en gassektor transformeart

Foarsizzend ûnderhâld revolúsjonearret de oalje- en gassektor, mei in ynnovative en proaktive oanpak foar plantbehear.…

22 april 2024

Britske anty-trustregulator makket BigTech alarm oer GenAI

De UK CMA hat in warskôging útjûn oer it gedrach fan Big Tech yn 'e merk foar keunstmjittige yntelliginsje. Dêr…

18 april 2024

Casa Green: enerzjyrevolúsje foar in duorsume takomst yn Itaalje

It Beslút "Case Green", formulearre troch de Jeropeeske Uny om de enerzjy-effisjinsje fan gebouwen te ferbetterjen, hat syn wetjouwingsproses ôfsletten mei ...

18 april 2024