如何在不将值放入工作表的情况下输出值?
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
我有一个非常简单的 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