კითხვის სავარაუდო დრო: 3 მინუტი
შემდეგი ქვე პროცედურა კითხულობს მნიშვნელობებს უჯრედებიდან აქტიური სამუშაო ფურცლის 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, რომ გაზარდოთ მასივის ზომა 10-ითdCellValues(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
კატანიას პოლიკლინიკაში ჩატარდა ოფთალმოპლასტიკური ოპერაცია Apple Vision Pro კომერციული მაყურებლის გამოყენებით…
შეღებვის გზით მშვენიერი საავტომობილო უნარების განვითარება ბავშვებს ამზადებს უფრო რთული უნარებისთვის, როგორიცაა წერა. შეღებვა…
საზღვაო სექტორი ნამდვილი გლობალური ეკონომიკური ძალაა, რომელიც 150 მილიარდი ბაზრისკენ მიისწრაფვის...
გასულ ორშაბათს, Financial Times-მა გამოაცხადა გარიგება OpenAI-თან. FT ლიცენზირებს თავის მსოფლიო დონის ჟურნალისტიკას…