Predvideni čas branja: 3 min
Naslednji podpostopek bere vrednosti iz celic v stolpcu A aktivnega delovnega lista, dokler ne naleti na prazno celico. Vrednosti so shranjene v matriki. Ta preprost primer Excelovega makra ponazarja uporabo:
Do Until
;Ubound
vgrajen (ki vrne najvišji indeks matrike).' 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
Postopek shrani vrednosti v stolpcu A aktivnega delovnega lista v matriko, upoštevajte, da:
Do Until
izvleče vrednosti vsake celice v stolpcu A aktivnega delovnega lista, pri čemer ignorira prazne celiceIf UBound(dCellValues) < iRow
” preveri, ali je matrika dCellValues dovolj velika za shranjevanje informacij, če ni, uporabite ReDim, da povečate velikost matrike za 10dCellValues(iRow) = Cells(iRow, 1).Value
” Shrani trenutno celico v matriko CellValues Naslednji podpostopek prebere vrednosti iz stolpca A delovnega lista z imenom »Sheet2« in izvede aritmetične operacije z vrednostmi. Dobljene vrednosti so natisnjene v stolpcu A trenutnega aktivnega delovnega lista.
Ta makro ponazarja:
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
Napišimo preprost makro VBA, ki se sproži, ko se posodobi celica v določenem obsegu našega lista. Recimo, da želite slediti spremembam v stolpcu B (B4 do B11) in zabeležiti datum in uro spremembe v stolpcu A.
Nadaljujmo takole:
Developer
kliknite možnost "Visual Basic
”, da odprete urejevalnik 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
Shranite delovni zvezek z omogočenimi makri (na primer kot datoteko .xlsm).
Zdaj bo vsakič, ko posodobimo celico v stolpcu B (od vrstice 1 do vrstice 10), celica v stolpcu A samodejno prikazala trenutni datum in čas.
Ercole Palmeri
Coveware by Veeam bo še naprej zagotavljal storitve odzivanja na incidente kibernetskega izsiljevanja. Coveware bo nudil forenziko in zmogljivosti sanacije ...
Prediktivno vzdrževanje revolucionira sektor nafte in plina z inovativnim in proaktivnim pristopom k upravljanju obratov.…
Britanski CMA je izdal opozorilo glede obnašanja Big Tech na trgu umetne inteligence. tam …
Odlok "Case Green", ki ga je oblikovala Evropska unija za povečanje energetske učinkovitosti stavb, je zaključil svoj zakonodajni postopek z ...