Bagaimana cara nilai rata-rata di excel melalui vba?
Di Excel, Anda bisa menggunakan VBA untuk menghitung nilai rata-rata dari rentang sel atau beberapa rentang. Dan dalam tutorial ini, kita akan mempelajari berbagai cara menggunakannya.
Rata-rata di VBA menggunakan WorksheetFunction
Di VBA, ada beberapa fungsi yang bisa Anda gunakan, namun tidak ada fungsi khusus untuk tujuan tersebut. Ini tidak berarti kita tidak bisa mengambil rata-rata. Di VBA, ada properti bernama WorksheetFunction yang dapat membantu Anda memanggil fungsi dalam kode VBA.
Mari kita rata-ratakan nilai pada rentang A1:A10.
- Pertama-tama masukkan properti fungsi lembar kerja, lalu pilih fungsi AVERAGE dari daftar.
- Selanjutnya, Anda harus memasukkan tanda kurung awal seperti yang Anda lakukan saat memasukkan fungsi di spreadsheet.
- Setelah itu, kita perlu menggunakan objek rentang untuk merujuk pada rentang yang ingin kita hitung rata-ratanya.
- Di akhir, ketikkan tanda kurung tutup dan tetapkan nilai kembalian fungsi ke sel B1.
Application.WorksheetFunction.Average( Range ("A1:A10"))
Sekarang ketika Anda menjalankan kode ini, kode ini menghitung rata-rata nilai yang Anda miliki dalam rentang A1:A10 dan memasukkan nilai di sel B1.
Nilai rata-rata seluruh kolom atau baris
Dalam hal ini, Anda hanya perlu menentukan baris atau kolom, bukan rentang yang kita gunakan pada contoh sebelumnya.
'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"))
Gunakan VBA untuk rata-rata nilai pilihan
Sekarang misalkan Anda ingin menghitung nilai rata-rata sel yang dipilih saja karena Anda dapat menggunakan kode seperti ini.
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
Pada kode di atas, kita menggunakan seleksi, lalu menentukannya dalam variabel “sRange”, lalu kita menggunakan alamat variabel rentang ini untuk mendapatkan rata-ratanya.
VBA rata-rata semua sel di atas
Kode berikut mengambil semua sel di atas dan nilai rata-ratanya dan memasukkan hasilnya ke dalam sel yang dipilih .
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
Rata-rata rentang dinamis menggunakan VBA
Demikian pula, Anda dapat menggunakan rentang dinamis saat menggunakan VBA untuk menghitung rata-rata nilainya.
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
Rata-rata kolom atau baris dinamis
Demikian pula jika Anda ingin menggunakan kolom dinamis, Anda dapat menggunakan kode berikut yang akan mengambil kolom sel aktif dan rata-rata semua nilai yang Anda miliki di sana.
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
Dan berturut-turut.
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