Εκτιμώμενος χρόνος ανάγνωσης: 3 λεπτά
Η ακόλουθη διαδικασία Sub διαβάζει τιμές από κελιά στη στήλη Α του ενεργού φύλλου εργασίας, μέχρι να συναντήσει ένα κενό κελί. Οι τιμές αποθηκεύονται σε έναν πίνακα. Αυτό το απλό παράδειγμα μακροεντολής του 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
Η διαδικασία αποθηκεύει τις τιμές στη στήλη Α του ενεργού φύλλου εργασίας σε έναν πίνακα, σημειώστε ότι:
Do Until
εξάγει τις τιμές κάθε κελιού στη στήλη Α του ενεργού φύλλου εργασίας, αγνοώντας τα κενά κελιάIf UBound(dCellValues) < iRow
” ελέγχει ότι ο πίνακας dCellValues είναι αρκετά μεγάλος ώστε να περιέχει τις πληροφορίες, εάν όχι, χρησιμοποιήστε το ReDim για να αυξήσετε το μέγεθος του πίνακα κατά 10dCellValues(iRow) = Cells(iRow, 1).Value
” Αποθηκεύει το τρέχον κελί στον πίνακα CellValuesΗ ακόλουθη διαδικασία Sub διαβάζει τις τιμές από τη στήλη Α του φύλλου εργασίας που ονομάζεται «Φύλλο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
Ας γράψουμε μια απλή μακροεντολή VBA που ενεργοποιείται όταν ενημερώνεται ένα κελί σε μια συγκεκριμένη περιοχή του φύλλου μας. Ας υποθέσουμε ότι θέλετε να παρακολουθήσετε τις αλλαγές στη στήλη Β (Β4 έως Β11) και να καταγράψετε την ημερομηνία και την ώρα της αλλαγής στη στήλη Α.
Ας προχωρήσουμε ως εξής:
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).
Τώρα, κάθε φορά που ενημερώνουμε ένα κελί στη στήλη Β (από τη σειρά 1 στη σειρά 10), το κελί στη στήλη Α θα εμφανίζει αυτόματα την τρέχουσα ημερομηνία και ώρα.
Ercole Palmeri
Η Coveware από την Veeam θα συνεχίσει να παρέχει υπηρεσίες αντιμετώπισης περιστατικών εκβιασμών στον κυβερνοχώρο. Το Coveware θα προσφέρει ιατροδικαστικές και δυνατότητες αποκατάστασης…
Η προγνωστική συντήρηση φέρνει επανάσταση στον τομέα του πετρελαίου και του φυσικού αερίου, με μια καινοτόμο και προορατική προσέγγιση στη διαχείριση των εγκαταστάσεων.…
Η βρετανική CMA εξέδωσε προειδοποίηση σχετικά με τη συμπεριφορά της Big Tech στην αγορά τεχνητής νοημοσύνης. Εκεί…
Το διάταγμα «Case Green», που διατυπώθηκε από την Ευρωπαϊκή Ένωση για τη βελτίωση της ενεργειακής απόδοσης των κτιρίων, ολοκλήρωσε τη νομοθετική του διαδικασία με…