Greinar

Dæmi um Excel fjölvi skrifuð með VBA

Eftirfarandi einföld Excel þjóðhagsdæmi voru skrifuð með VBA 

Áætlaður lestrartími: 3 minuti

VBA dæmi með Array

Eftirfarandi undiraðferð les gildi úr hólfum í dálki A á virka vinnublaðinu, þar til það rekst á auða reit. Gildin eru geymd í fylki. Þetta einfalda Excel macro dæmi sýnir notkun á:

  • Breytilegar yfirlýsingar;
  • Dynamic fylki;
  • Hringrás Do Until;
  • Vísa til frumna í núverandi Excel vinnublaði;
  • VBA aðgerðin Ubound innbyggður (sem skilar hæstu vísitölu fylkis).
' 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

Aðferðin geymir gildin í dálki A á virka vinnublaðinu í fylki, athugaðu að:

  • Hringrásin Do Until dregur út gildi hvers reits í dálki A á virka vinnublaðinu og hunsar auðar reiti
  • Skilyrði"If UBound(dCellValues) < iRow” athugar að dCellValues ​​​​fylki sé nógu stórt til að geyma upplýsingarnar, ef ekki, notaðu ReDim til að auka stærð fylkisins um 10
  • Að lokum, menntun​​dCellValues(iRow) = Cells(iRow, 1).Value” Geymir núverandi reit í CellValues ​​array

VBA dæmi með stærðfræðilegum aðgerðum

Eftirfarandi undirferli les gildin úr dálki A á vinnublaðinu sem heitir „Sheet2“ og framkvæmir reikningsaðgerðir á gildunum. Gildin sem myndast eru prentuð í dálki A á núverandi virka vinnublaði.

Þessi fjölvi sýnir:

Nýsköpunarfréttabréf
Ekki missa af mikilvægustu fréttunum um nýsköpun. Skráðu þig til að fá þau með tölvupósti.
  • Breytilegar yfirlýsingar;
  • Excel hlutir (sérstaklega, notkun á Set lykilorðinu og hvernig á að fá aðgang að 'Dálkum' hlutnum frá 'Sheets' hlutnum);
  • Hringrás Do Until;
  • Fáðu aðgang að vinnublöðum og hólfsviðum í núverandi Excel vinnubók.
' 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 dæmi með upptöku dagsetningar breytingar

Við skulum skrifa einfaldan VBA fjölvi sem kviknar þegar hólf á tilteknu sviði blaðsins okkar er uppfært. Segjum að þú viljir fylgjast með breytingum í dálki B (B4 til B11) og skrá dagsetningu og tíma breytingarinnar í dálki A.
Við skulum halda áfram svona:

  • Í flipanum Developer smelltu á valmöguleika "Visual Basic" til að opna VBA ritilinn.
  • Í VBA ritlinum, tvísmelltu á kóðaritilinn sem tengist Sheet2.
  • Veldu Vinnublað frá hægri (eða vinstri) flipanum og veldu Breyta valkostinn.
  • Bæta við VBA kóða:
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

Vistaðu vinnubókina með fjölva virkt (til dæmis sem .xlsm skrá).


Nú, í hvert skipti sem við uppfærum reit í dálki B (frá röð 1 í röð 10), mun reiturinn í dálki A sjálfkrafa sýna núverandi dagsetningu og tíma.

Ercole Palmeri

Nýsköpunarfréttabréf
Ekki missa af mikilvægustu fréttunum um nýsköpun. Skráðu þig til að fá þau með tölvupósti.

Nýlegar greinar

Veeam býður upp á umfangsmesta stuðninginn fyrir lausnarhugbúnað, allt frá vernd til viðbragða og bata

Coveware frá Veeam mun halda áfram að veita viðbragðsþjónustu fyrir tölvukúgun. Coveware mun bjóða upp á réttar- og úrbótamöguleika ...

23 Apríl 2024

Græn og stafræn bylting: Hvernig forspárviðhald er að umbreyta olíu- og gasiðnaðinum

Forspárviðhald er að gjörbylta olíu- og gasgeiranum, með nýstárlegri og fyrirbyggjandi nálgun við verksmiðjustjórnun.…

22 Apríl 2024

Breska samkeppniseftirlitið vekur BigTech viðvörun vegna GenAI

Breska CMA hefur gefið út viðvörun um hegðun Big Tech á gervigreindarmarkaði. Þarna…

18 Apríl 2024

Casa Green: orkubylting fyrir sjálfbæra framtíð á Ítalíu

„Case Green“ tilskipunin, mótuð af Evrópusambandinu til að auka orkunýtni bygginga, hefur lokið löggjafarferli sínu með...

18 Apríl 2024