对于数组公式,需要返回多个值,即数组
| Function Multiply_Range(myrange As Object) As Variant Dim temp As Variant Dim i As Integer, j As Integer temp = myrange.Value ' 生成值的数组 If IsArray(temp) Then For i = 1 To UBound(temp, 1) For j = 1 To UBound(temp, 2) temp(i, j) = i ' temp(i, j) * 100 ' 在数组中返回值 Next j Next i Else temp = temp * 100 ' 对于单个 End If Multiply_Range = temp End Function |
这段代码是一个数组公式, 返回各个单元格是否可见。
Function IsVisible(c As Object) As Variant
Dim temp As Variant
temp = c.Value
Dim r As Range
If IsArray(temp) Then
For i = 1 To UBound(temp, 1)
For j = 1 To UBound(temp, 2)
Set r = c.Cells(i, j)
If r.EntireColumn.Hidden Or r.EntireRow.Hidden Then
temp(i, j) = 0
Else
temp(i, j) = 1
End If
Next
Next
Else
Set r = c
If r.EntireColumn.Hidden Or r.EntireRow.Hidden Then
temp(i, j) = 0
Else
temp(i, j) = 1
End If
End If
IsVisible = temp
End Function
|