Vba 循环中的平均值

Vba 循环中的平均值,vba,excel,Vba,Excel,我是vba的新手,我制作了一个宏来使用我的日常程序,我需要帮助获得平均值 如何为averageifs公式提供变量 我想要什么,在我的循环中我想要改变一切!I:我是根据excel分开的 它将变成G:G然后M:M然后Q:Q每次都会跳过相同数量的ex:4科隆酒 有什么想法吗 非常感谢你 Dim yilne As Long yilne = MsgBox(ActiveSheet.Name & " Analiz Yili 2018 mi?", vbYesNo) If yilne = vbYes

我是vba的新手,我制作了一个宏来使用我的日常程序,我需要帮助获得平均值

如何为averageifs公式提供变量

我想要什么,在我的循环中我想要改变一切!I:我是根据excel分开的

它将变成G:G然后M:M然后Q:Q每次都会跳过相同数量的ex:4科隆酒

有什么想法吗

非常感谢你

Dim yilne As Long

yilne = MsgBox(ActiveSheet.Name & " Analiz Yili 2018 mi?", vbYesNo)

If yilne = vbYes Then
    yilne = 2018
Else
    yilne = Application.InputBox(prompt:=ActiveSheet.Name & " Analiz Yili Nedir?", Type:=1)
End If

rt = 3
hc = 2
sonay = 7
kacay = cnt
'kacay = Application.InputBox(prompt:=ActiveSheet.Name & " KaçAy var?", Type:=1)

For ilk = 1 To kacay

    Dim lay As Long
    Dim ilktarih As Date
    Dim sontarih As Date

    lay = Cells(rt - 1, hc)
    'lay = Application.InputBox("Enter Month Number 1 to 12")

    ilktarih = DateSerial(yilne, lay, 1)
    sontarih = DateSerial(yilne, lay + 1, 0)

    Cells(rt, hc).Select
    Cells(rt, hc).Formula = "=IFERROR(AVERAGEIFS(All!g:g,All!$B:$B,"">=" & ilktarih & """,All!$B:$B, ""<=" & sontarih & """,All!$A:$A,$A3),"""")"
    hc = hc + 1
Next ilk

我通过索引公式解决了它,我的代码变成了

op = 1
basla = 2

Do Until Cells(1, basla) = ""

  For ilk = 1 To kacay

   Dim lay As Long
   Dim ilktarih As Date
   Dim sontarih As Date

lay = Cells(rt - 1, hc)

ilktarih = DateSerial(yilne, lay, 1)
sontarih = DateSerial(yilne, lay + 1, 0)

Cells(rt, hc).Select


Cells(rt, hc).Formula = "=IFERROR(AVERAGEIFS(INDEX(All!G:AA,0," & op & "),All!$B:$B,"">=" & ilktarih & """,All!$B:$B, ""<=" & sontarih & """,All!$A:$A,$A3),"""")"




hc = hc + 1

Next ilk
basla = basla + kacay
op = op + 4
Loop

在averageifs公式中为Average_范围使用索引公式:AVERAGEIFSindexAll!g:Q,,1,。。。你可以用这个1到5-9-13循环并去掉最没有价值的excel函数IFERROR,但那是我的opinion@EvR是的,它解决了它,我的代码如下