Eeldatav lugemisaeg: 3 minutit
Järgmine alamprotseduur loeb väärtusi aktiivse töölehe veerus A olevatest lahtritest, kuni see kohtab tühja lahtri. Väärtused salvestatakse massiivi. See lihtne Exceli makro näide illustreerib järgmist:
Do Until
;Ubound
builtin (mis tagastab massiivi kõrgeima indeksi).' 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
Protseduur salvestab aktiivse töölehe veerus A olevad väärtused massiivi, pange tähele, et:
Do Until
ekstraheerib aktiivse töölehe veerus A iga lahtri väärtused, ignoreerides tühje lahtreidIf UBound(dCellValues) < iRow
” kontrollib, kas massiiv dCellValues on teabe mahutamiseks piisavalt suur, kui mitte, kasutage massiivi suurendamiseks 10 võrra ReDimidCellValues(iRow) = Cells(iRow, 1).Value
” Salvestab praeguse lahtri massiivi CellValuesJärgmine alamprotseduur loeb väärtused töölehe nimega "Sheet2" veerust A ja teostab väärtustega aritmeetilisi toiminguid. Saadud väärtused trükitakse aktiivse töölehe veergu A.
See makro illustreerib:
Do Until
;' 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
Kirjutame lihtsa VBA-makro, mis käivitub, kui meie lehe teatud vahemiku lahtrit värskendatakse. Oletame, et soovite jälgida muudatusi veerus B (B4 kuni B11) ja salvestada veergu A muudatuse kuupäev ja kellaaeg.
Jätkame nii:
Developer
klõpsake valikul "Visual Basic
", et avada VBA redaktor. 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
Salvestage töövihik, kui makrod on lubatud (näiteks .xlsm-failina).
Nüüd, iga kord, kui värskendame lahtrit veerus B (reast 1 kuni reani 10), kuvab veeru A lahter automaatselt praeguse kuupäeva ja kellaaja.
Ercole Palmeri
Veeami Coveware jätkab küberväljapressimise juhtumitele reageerimise teenuste pakkumist. Coveware pakub kohtuekspertiisi ja heastamisvõimalusi…
Ennustav hooldus muudab nafta- ja gaasisektori pöördeliseks uuendusliku ja ennetava lähenemisega tehaste juhtimisele.…
Ühendkuningriigi CMA on väljastanud hoiatuse Big Techi käitumise kohta tehisintellekti turul. Seal…
Euroopa Liidu poolt hoonete energiatõhususe suurendamiseks koostatud roheliste majade dekreet on lõpetanud oma seadusandliku protsessi…