2015-04-22 2 views
0

Я новичок в VBA в excel. У меня есть ряд данных, таких как 11000 номеров. Я хочу, чтобы он вычислял среднее значение первых 60, а затем 60 до конца. Я немного программировал, но это не работает. Так кто-то может помочь мне с этим.Среднее значение в VBA в Excel

Sub Hourlyaverage() 
Dim i As Long, j As Long, k As Long, l As Long, m As Long 

Sheets("DUT1_Test51_excel").Select 

i = 3 
j = 3 
k = 63 

Do While Cells(i, 12).Value <> "" 

    l = Cells(i, 12).Value 
    m = Cells(k, 12).Value 

    Cells(j, 20).Value = [Average (l : m)] 
    i = i + 60 
    j = j + 1 
    k = k + 60 
Loop 


End Sub 
+2

Поскольку вы упоминаете «среднечасовая» Вы рассмотрели сводную таблицу? – pnuts

ответ

2

Посмотрите внимательно на то, что вы пытаетесь сделать в этом коде:

l = Cells(i, 12).Value 
m = Cells(k, 12).Value 

Cells(j, 20).Value = [Average (l : m)] 

Вы назначая «длинную» значение каждого из l и m и затем вызвать их в среднем как будто они являются ссылками на ячейку.

Я предлагаю вам добавить переменную диапазона, присвойте местоположение данных, которые вы хотите усреднить, и используйте это как аргумент функции.

Что-то вроде:

Dim myRange as Range 

'Loop code here 
Set myRange = Range("L" & i & ":L" & k) 
Cells(j, 20).Value = Application.Average(myRange) 
Смежные вопросы