Предвиђено време читања: 3 минута
Следећа подпроцедура чита вредности из ћелија у колони А активног радног листа, све док не наиђе на празну ћелију. Вредности се чувају у низу. Овај једноставан пример Екцел макроа илуструје употребу:
Do Until
;Ubound
уграђен (који враћа највиши индекс низа).' 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
Процедура чува вредности у колони А активног радног листа у низу, имајте на уму да:
Do Until
издваја вредности сваке ћелије у колони А активног радног листа, занемарујући празне ћелијеIf UBound(dCellValues) < iRow
” проверава да ли је низ дЦеллВалуес довољно велик да задржи информације, ако није, користите РеДим да повећате величину низа за 10dCellValues(iRow) = Cells(iRow, 1).Value
” Чува тренутну ћелију у низу ЦеллВалуесСледећа подпроцедура чита вредности из колоне А радног листа под називом „Схеет2“ и изводи аритметичке операције над вредностима. Добијене вредности се штампају у колони А тренутно активног радног листа.
Овај макро илуструје:
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
Хајде да напишемо једноставан ВБА макро који се покреће када се ћелија у одређеном опсегу нашег листа ажурира. Претпоставимо да желите да пратите промене у колони Б (Б4 до Б11) и забележите датум и време промене у колони А.
Хајде да наставимо овако:
Developer
кликните на опцију "Visual Basic
” да бисте отворили ВБА едитор. 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
Сачувајте радну свеску са омогућеним макроима (на пример, као .клсм датотеку).
Сада, сваки пут када ажурирамо ћелију у колони Б (од реда 1 до реда 10), ћелија у колони А ће аутоматски приказати тренутни датум и време.
Ercole Palmeri
Цовеваре од Вееам-а ће наставити да пружа услуге одговора на инциденте са сајбер изнудом. Цовеваре ће понудити форензику и могућности санације…
Предиктивно одржавање револуционише сектор нафте и гаса, са иновативним и проактивним приступом управљању постројењима.…
УК ЦМА је издао упозорење о понашању Биг Тецх-а на тржишту вештачке интелигенције. Тамо…
Уредба „Цасе Греен“, коју је формулисала Европска унија за побољшање енергетске ефикасности зграда, завршила је свој законодавни процес са…