如何在不将值放入工作表的情况下输出值?

How do I output a value without placing it into the worksheet?

我有一个非常简单的 Sub,其中包含以下代码 -

Sub UnitNetCheck()
    Dim UnitValue As Integer
    Dim NetArea As Long

    If Not [COUNTA(F2:F250)=0] Then
        For UnitValue = 2 To 250
            Cells(UnitValue, 26) = Cells(UnitValue, 4) * Cells(UnitValue, 6)
            If Cells(UnitValue, 26) = 0 Then
                Cells(UnitValue, 26).Value = ""
            Else
            End If
        Next
    Else
        NetArea = Cells(Rows.Count, 7).End(xlUp).Row
        Worksheets("Sheet1").Range("Z2:Z" & NetArea).Value = 
            Application.Transpose(Worksheets("Sheet1").Range("G2:G250").Value)
    End If
End Sub

这个子 UnitNetCheck,现在它所做的只是将一些单元格与其他一些单元格相乘,并将值放入 Z2:Z250

我不想将值输出到指定的特定范围内,而是想在其他代码中使用输出而不将其填充到工作表上。

我想做的是稍后将 sub 作为工作表 SUMIF 函数的一部分用作 Sumif("defined range")("defined criteria")(UnitNetCheck Sub)

要保存数据供以后在代码中使用,您需要创建一个数组类型的模块级变量(如其他语言中的全局变量)。

第一步是创建数组,因此从 VBA 编辑器菜单,select 插入 -> 模块,然后通过以下内容:

'Declare the array inside a module file
Dim CellData(250)

下一步是保存现有代码中的数据,如下所示:

For UnitValue = 2 To 250
Cells(UnitValue, 26) = Cells(UnitValue, 4) * Cells(UnitValue, 6)
    If Cells(UnitValue, 26) = 0 Then
    Cells(UnitValue, 26).Value = ""
    Else
        'Save in array for later use
        CellData(UnitValue) = Cells(UnitValue, 26).Value
    End If
Next