Excel 向下拖动用户定义函数VBA的自动填充

Excel 向下拖动用户定义函数VBA的自动填充,excel,vba,excel-formula,Excel,Vba,Excel Formula,我有以下功能: Function myFunc() As String Application.Volatile Dim i As Long, lTotal As Long For i = 3 To 10 If Range("H3").Value = Cells(i, 2).Value And Range("I3").Value < _ Cells(i, 4).Value And _ Range("I3").Value >= Cells(i, 3).Va

我有以下功能:

Function myFunc() As String

Application.Volatile

Dim i As Long, lTotal As Long
For i = 3 To 10

    If Range("H3").Value = Cells(i, 2).Value And Range("I3").Value < _
    Cells(i, 4).Value And _
    Range("I3").Value >= Cells(i, 3).Value Then

    lTotal = Cells(i, 5).Value + lTotal

    End If

    myFunc = lTotal

Next i

End Function
函数myFunc()作为字符串 应用程序。挥发性 暗我一样长,我一样长 对于i=3到10 如果范围(“H3”)。值=单元格(i,2)。值和范围(“I3”)。值<_ 单元格(i,4).值和_ 范围(“I3”)。值>=单元格(i,3)。然后值 lTotal=单元格(i,5)。值+lTotal 如果结束 myFunc=lTotal 接下来我 端函数 当我将此函数拖到列中时,我希望它是自动填充的。我该怎么做

[编辑] 附件是图片。 将DASBoad表视为一个离散表,其中手动输入条目。将日志表视为一个连续表,记录每个日期的每个小时的记录。仪表板表中的条目将过帐到日志表。 我正在日志表的输出列中使用此函数。我希望能够将其向下拖动以填充日志表


为什么要使用自定义项?不要再发明轮子了。您可以使用
SUMIFS

=SUMIFS($E$3:$E$10,$B$3:$B$10,"=" & H3,$C$3:$C$10,"<=" & I3,$D$3:$D$10,">" & I3)
=SUMIFS($E$3:$E$10,$B$3:$B$10,“=”&H3,$C$3:$C$10,”&I3)

将公式放在J3中并向下拉。

自动填充是什么意思?它是否应该以与要填充的行相同的行开始?它应该总是在接下来的7行上循环吗?可能它填充了单元格,但值不正确?描述你的目标是什么?UDF只会将一些东西返回到调用它的单元格中。如果对多个调用单元格产生影响,请使用sub。如果要在向下拖动时更改引用,则硬编码输入单元格是个坏主意。您能告诉我们您希望这个函数做什么吗?如果它尝试添加一些数字,为什么会返回字符串?是的,它应该从我想填充的同一行开始。是的,循环是固定的。我对问题进行了更精确的编辑。QHarr不能使用sub,因为在这种情况下,我不能将其向下拖动。然后我必须手动为列中的每一行创建一个宏。这不能使用,因为在这种情况下,我们必须为仪表板表中的每个条目在J3中为Sumif编写8个不同的标准。如果我需要更多的条目,这将是不可能的。@OsamaMalik好吧,它正是您的代码现在所做的。我看不出有什么不同。我不明白为什么你需要8个不同的标准。只要把公式拉下来,它在我的测试中起作用了。它似乎起作用了。让我将其应用于原始数据。如果成功的话,你就救了我一天。我马上打勾