Estimeret læsetid: 3 minutter
Følgende underprocedure læser værdier fra celler i kolonne A i det aktive regneark, indtil det støder på en tom celle. Værdierne er gemt i et array. Dette simple Excel-makroeksempel illustrerer brugen af:
Do Until
;Ubound
indbygget (som returnerer det højeste indeks for en matrix).' 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
Proceduren gemmer værdierne i kolonne A i det aktive regneark i et array, bemærk at:
Do Until
udtrækker værdierne for hver celle i kolonne A i det aktive regneark og ignorerer tomme cellerIf UBound(dCellValues) < iRow
” kontrollerer, at dCellValues-arrayet er stort nok til at indeholde oplysningerne, hvis ikke, brug ReDim til at øge størrelsen af arrayet med 10dCellValues(iRow) = Cells(iRow, 1).Value
” Gemmer den aktuelle celle i CellValues-arrayetDen følgende underprocedure læser værdierne fra kolonne A i regnearket med navnet "Sheet2" og udfører aritmetiske operationer på værdierne. De resulterende værdier udskrives i kolonne A i det aktuelle aktive regneark.
Denne makro illustrerer:
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
Lad os skrive en simpel VBA-makro, der udløses, når en celle i et specifikt område af vores ark opdateres. Antag, at du vil spore ændringer i kolonne B (B4 til B11) og registrere dato og klokkeslæt for ændringen i kolonne A.
Lad os fortsætte sådan her:
Developer
klik på mulighed "Visual Basic
” for at åbne VBA-editoren. 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
Gem projektmappen med makroer aktiveret (for eksempel som en .xlsm-fil).
Hver gang vi opdaterer en celle i kolonne B (fra række 1 til række 10), vil cellen i kolonne A automatisk vise den aktuelle dato og klokkeslæt.
Ercole Palmeri
Coveware by Veeam vil fortsætte med at levere responstjenester til cyberafpresning. Coveware vil tilbyde kriminaltekniske og afhjælpende funktioner...
Forudsigende vedligeholdelse revolutionerer olie- og gassektoren med en innovativ og proaktiv tilgang til anlægsstyring...
Det britiske CMA har udsendt en advarsel om Big Techs adfærd på markedet for kunstig intelligens. Der…
Dekretet om "grønne huse", der er formuleret af Den Europæiske Union for at øge bygningers energieffektivitet, har afsluttet sin lovgivningsproces med...