excel - Excel VBA 平均IF 零
问题描述
您好,我最近开始在 VBA 中编写代码,并希望实现函数“AverageIF”。
在链接中,您可以看到 B 列中有 00:00 之后的值,我想获得 B 列的平均值,从 B2 到 B32。此外,我想将答案放在 B33 中。
我正在工作的第一个代码在这里可以看到,这将得到 AverageIF:
noxGem = WorksheetFunction.averageif(Sheet2.Range("B" & beginRow & ":" & "B" & offsetCellNum2), ">0")
在上面的代码中,我假设将检查行 B2 到行 B32 的值是否大于 0。我不知道这是否是正确的表示法,因为我收到了一个错误:
我的第二个代码在这里看到,这会将averageIF放在B33中:
Worksheets("Sheet2").Range("B" & offsetCellNum).Value = noxGem
我认为这段代码是有效的,因为我已经把数据(B2:B32)和这段代码放在一个循环中。
你们可能对问题所在有什么建议吗?
非常感激!
编辑
我已经发布了我的整个代码,我很抱歉!错误消息 = 需要错误 424 对象
Sub averageif_1()
Dim noxValue As Double 'De waarde die je gaat nemen moet een decimaal
getal worden. Single kan ook gebruikt worden
Dim noxCellNumm As String 'Je gaat in de kolom I zoeken per rij van 24 dus
de waarde moet steeds veranderen I2 I3 I4 etc etc..
Dim x As Integer 'Dit geeft voor de 'GEM_Sheet0' aan, in welke rij de data
wordt opgeslagen
counter = 0
offsetCellNum = 2
beginRow = 2
eindRow = 745
Dim noxGem As Double
While counter < 24
Select Case counter
Case Is = 0
x = beginRow
x2 = eindRow
For i = x To x2 Step 24
noxCellNumm = "I" & i
noxValue = Worksheets("Sheet1").Range(noxCellNumm).Value
'Debug.Print strValue
Worksheets("Sheet2").Range("B" & offsetCellNum).Value =
noxValue
offsetCellNum = offsetCellNum + 1
Next
Debug.Print "00:00"
offsetCellNum2 = offsetCellNum - 1
noxGem = WorksheetFunction.averageif(Sheet2.Range("B" &
beginRow & ":" & "B" & offsetCellNum2), ">0")
'noxGem = WorksheetFunction.averageif
'noxGem = WorksheetFunction.averageif(Sheet2.Range("B2:B33"),
"=0")
Debug.Print noxGem
Worksheets("Sheet2").Range("B" & offsetCellNum).Value = noxGem
counter = counter + 1
offsetCellNum = 2
beginRow = beginRow + 1
Case Else
counter = 100
End Select
Wend
End Sub
解决方案
推荐阅读
- laravel - Laravel 更多维度数组验证
- android - 使用 V1 和 V2 签名后无法在我的旧安卓设备上安装我的 apk
- javascript - 在预签名的 URL 请求中获取响应代码 500?
- java - 从 JSON 数组收集数据的数组列表
- mysql - mysqldump 无法加载 libss
- spring-boot - 升级到 Spring Boot 版本 2 后 Prometheus 无法正常工作
- azure - 将存储在 DB 中的用户配置文件链接到 Azure Active Directory 帐户
- ios - 在iOS后台使用BLE开门
- java - 努力打印数组
- java - ATG-通过实用程序 java 调度程序发送电子邮件的问题