Разліковы час чытання: 3 хвілін
Наступная працэдура Sub счытвае значэнні з ячэек у слупку A актыўнага аркуша, пакуль не сустрэне пустую ячэйку. Значэнні захоўваюцца ў масіве. Гэты просты прыклад макраса Excel ілюструе выкарыстанне:
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
Працэдура захоўвае значэнні ў слупку A актыўнага ліста ў масіве, звярніце ўвагу, што:
Do Until
здабывае значэнні кожнай ячэйкі ў слупку A актыўнага аркуша, ігнаруючы пустыя вочкіIf UBound(dCellValues) < iRow
” правярае, ці дастаткова вялікі масіў dCellValues, каб утрымліваць інфармацыю, калі не, выкарыстоўвайце ReDim, каб павялічыць памер масіва на 10dCellValues(iRow) = Cells(iRow, 1).Value
” Захоўвае бягучую ячэйку ў масіве CellValues Наступная падпрацэдура счытвае значэнні са слупка A аркуша з назвай «Sheet2» і выконвае арыфметычныя аперацыі над значэннямі. Атрыманыя значэнні друкуюцца ў слупку A бягучага актыўнага аркуша.
Гэты макрас ілюструе:
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
Давайце напішам просты макрас VBA, які спрацоўвае пры абнаўленні ячэйкі ў пэўным дыяпазоне нашага аркуша. Выкажам здагадку, вы хочаце адсочваць змены ў слупку B (B4 - B11) і запісваць дату і час змены ў слупку A.
Давайце так:
Developer
націсніце на опцыю "Visual Basic
», каб адкрыць рэдактар 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
Захавайце кнігу з уключанымі макрасамі (напрыклад, як файл .xlsm).
Цяпер кожны раз, калі мы абнаўляем ячэйку ў слупку B (ад радка 1 да радка 10), у ячэйцы ў слупку A будуць аўтаматычна адлюстроўвацца бягучая дата і час.
Ercole Palmeri
Coveware ад Veeam працягне прадастаўляць паслугі рэагавання на інцыдэнты кібервымагальніцтва. Coveware будзе прапаноўваць судова-медыцынскую экспертызу і магчымасці выпраўлення…
Прагнастычнае тэхнічнае абслугоўванне рэвалюцыянізуе нафтагазавы сектар з інавацыйным і актыўным падыходам да кіравання заводам.…
CMA Вялікабрытаніі выпусціла папярэджанне аб паводзінах Big Tech на рынку штучнага інтэлекту. Там…
Указ «Зялёныя дамы», распрацаваны Еўрапейскім саюзам для павышэння энергаэфектыўнасці будынкаў, завяршыў свой заканадаўчы працэс з...