gpt4 book ai didi

excel - 如何使用数组作为范围?

转载 作者:行者123 更新时间:2023-12-04 20:22:15 25 4
gpt4 key购买 nike

一开始可能是一个愚蠢的问题,但我需要将数据存储在数组中,然后在需要范围的函数中使用该数据。
我的数组有以下代码 -

Function UnitCheckArr()
Dim UnitValueArr(2 To 250) As Long
Dim UnitValue As Long


For UnitValue = LBound(UnitValueArr) To UBound(UnitValueArr)
UnitValueArr(UnitValue) = Cells(UnitValue, 4) * Cells(UnitValue, 6)
Next UnitValue

End Function
然后我想在 SUMIF 函数中使用所述数组,就像这样 -
Sub NetSumIF()
If [COUNTA(F2:F250)=0] Then

Worksheets("Sheet1").Range("K2:K250") = Application.WorksheetFunction.SumIf(Worksheets("Sheet1").Range("I2:I250"), "I2", Worksheets("Sheet1").Range("UnitCheckArr"))

End If
End Sub
目前我收到一个对象定义错误,我假设它是因为我无法将数组表示为 sumif 的范围..?我无法将原始功能表达到工作表中。任何想法如何解决这个问题或以不同的方式解决它?

最佳答案

对有条件的产品求和

  • SumIf适用于范围,不适用于数组。
  • Range("A1:A10")是一个范围,而 Range("A1:A10").Value是一个二维的单列数组(包含 10 个元素(行))。
  • 您可以将产品写入另一列并应用 SumIf使用此列,或者您可以在代码中创建循环(可能太慢),或者诸如此类。
  • 而是尝试以下方法之一。让我们知道它有什么问题,如果您需要它的某些部分是动态的。

  • Excel
  • 在单元格 K2你可以使用:
    =IFERROR(SUMPRODUCT(--(I$2:I$250=I2),D$2:D$250,F$2:F$250),"")
    并抄下来。

  • VBA(公式)
    Option Explicit

    Sub SumData()
    Dim dFormula As String
    Const dFormula As String _
    = "=IFERROR(SUMPRODUCT(--(I$2:I$250=I2),D$2:D$250,F$2:F$250),"""")"
    With ThisWorkbook.Worksheets("Sheet1").Range("K2:K250")
    .Formula = dFormula
    .Value = .Value
    End With

    End Sub

    关于excel - 如何使用数组作为范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69807319/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com