Təxmini oxuma vaxtı: 3 minuti
Aşağıdakı Alt prosedur boş xana ilə qarşılaşana qədər aktiv iş vərəqinin A sütununun xanalarından dəyərləri oxuyur. Dəyərlər massivdə saxlanılır. Bu sadə Excel makro nümunəsi aşağıdakıların istifadəsini göstərir:
Do Until
;Ubound
buildin (massivin ən yüksək indeksini qaytarır).' 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
Prosedura aktiv iş vərəqinin A sütunundakı dəyərləri massivdə saxlayır, nəzərə alın ki:
Do Until
boş xanalara məhəl qoymadan aktiv iş vərəqinin A sütununda hər bir xananın dəyərlərini çıxarırIf UBound(dCellValues) < iRow
” dCellValues massivinin məlumatı saxlamaq üçün kifayət qədər böyük olduğunu yoxlayır, əgər deyilsə, massivin ölçüsünü 10 artırmaq üçün ReDim-dən istifadə edindCellValues(iRow) = Cells(iRow, 1).Value
” Cari xananı CellValues massivində saxlayırAşağıdakı Alt prosedur "Vərəq2" adlı iş vərəqinin A sütunundan dəyərləri oxuyur və dəyərlər üzərində hesab əməliyyatları yerinə yetirir. Yaranan dəyərlər cari aktiv iş vərəqinin A sütununda çap olunur.
Bu makro göstərir:
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
Gəlin vərəqimizin müəyyən diapazonunda olan xana yeniləndikdə işə salınan sadə VBA makrosunu yazaq. Tutaq ki, B sütununda (B4-dən B11-ə) dəyişiklikləri izləmək və A sütununda dəyişiklik tarixini və vaxtını qeyd etmək istəyirsiniz.
Gəlin belə davam edək:
Developer
seçiminə klikləyin "Visual Basic
” VBA redaktorunu açmaq üçün. 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
İş kitabını makroları aktivləşdirərək yadda saxlayın (məsələn, .xlsm faylı kimi).
İndi biz hər dəfə B sütununda (1-ci sətirdən 10-cu sətirə) xananı yenilədikdə, A sütunundakı xana avtomatik olaraq cari tarix və vaxtı göstərəcək.
Ercole Palmeri
Coveware by Veeam kiber qəsb hallarına cavab xidmətləri göstərməyə davam edəcək. Coveware məhkəmə və remediasiya imkanları təklif edəcək...
Proqnozlaşdırılan texniki xidmət zavodun idarə edilməsinə innovativ və proaktiv yanaşma ilə neft və qaz sektorunda inqilab edir.…
Böyük Britaniyanın CMA süni intellekt bazarında Big Tech-in davranışı ilə bağlı xəbərdarlıq edib. Orada…
Avropa İttifaqı tərəfindən binaların enerji səmərəliliyini artırmaq üçün tərtib edilən "Yaşıl Evlər" Fərmanı qanunvericilik prosesini yekunlaşdırdı ...