Come calcolare la media dei valori in excel tramite vba?

In Excel, puoi utilizzare VBA per calcolare i valori medi da un intervallo di celle o più intervalli. E, in questo tutorial, impareremo i diversi modi per usarlo.

Media in VBA utilizzando WorksheetFunction

In VBA è possibile utilizzare diverse funzioni , ma non esiste una funzione specifica per questo scopo. Ciò non significa che non possiamo fare una media. In VBA esiste una proprietà chiamata WorksheetFunction che può aiutarti a chiamare funzioni nel codice VBA.

media in vba utilizzando la funzione foglio di calcolo

Facciamo la media dei valori nell’intervallo A1:A10.

  1. Per prima cosa inserisci la proprietà della funzione del foglio di lavoro, quindi seleziona la funzione MEDIA dall’elenco.
    worksheet-function-average
  2. Successivamente, devi inserire una parentesi iniziale come fai quando inserisci una funzione nel foglio di calcolo.
    enter-starting-paranthesis
  3. Successivamente, dobbiamo utilizzare l’oggetto intervallo per fare riferimento all’intervallo di cui vogliamo calcolare la media.
    use-the-range-object
  4. Alla fine, digita una parentesi di chiusura e assegna il valore restituito dalla funzione alla cella B1.
    type-close-pranthesis
 Application.WorksheetFunction.Average( Range ("A1:A10"))

Ora quando esegui questo codice calcola la media dei valori presenti nell’intervallo A1: A10 e inserisce il valore nella cella B1.

esegui-codice-calcola-media

Valori medi di un’intera colonna o riga

In questo caso, devi solo specificare una riga o una colonna invece dell’intervallo utilizzato nell’esempio precedente.

 'for the entire column A Range ("B1") = Application.WorksheetFunction.Average( Range ("A:A")) 'for entire row 1 Range ("B1") = Application.WorksheetFunction.Average( Range ("1:1"))

Utilizzare VBA per calcolare la media dei valori di selezione

Supponiamo ora di voler calcolare il valore medio delle celle selezionate solo perché puoi utilizzare un codice come questo.

 Sub vba_average_selection() Dim sRange As Range Dim iAverage As Long On Error GoTo errorHandler Set sRange = Selection iAverage = WorksheetFunction.Average(Range(sRange.Address)) MsgBox iAverage Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Nel codice precedente, abbiamo utilizzato la selezione, quindi l’abbiamo specificata nella variabile “sRange”, quindi abbiamo utilizzato l’indirizzo di questa variabile di intervallo per ottenere la media.

VBA media tutte le celle sopra

Il codice seguente prende tutte le celle sopra e i loro valori medi e inserisce il risultato nella cella selezionata .

 Sub vba_auto_Average() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection. End (xlUp). End (xlUp).Address iLast = Selection. End (xlUp).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Average(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Media di un intervallo dinamico utilizzando VBA

Allo stesso modo, puoi utilizzare l’intervallo dinamico mentre usi VBA per calcolare la media dei valori.

 Sub vba_dynamic_range_average() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection.Offset(1, 1).Address iLast = Selection.Offset(5, 5).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Average(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Media di una colonna o riga dinamica

Allo stesso modo, se desideri utilizzare una colonna dinamica, puoi utilizzare il seguente codice che prenderà la colonna della cella attiva e la media di tutti i valori che hai lì.

 Sub vba_dynamic_column() Dim iCol As Long On Error GoTo errorHandler iCol = ActiveCell.Column MsgBox WorksheetFunction.Average(Columns(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

E per una fila.

 Sub vba_dynamic_row() Dim iRow As Long On Error GoTo errorHandler iRow = ActiveCell.Row MsgBox WorksheetFunction.Average(Rows(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *