【发布时间】:2015-05-27 12:37:38
【问题描述】:
我有一个向量(行和列),我想为该向量中的每个值计算一个特定的函数(例如 x+5),我想让它显示在指定的单元格数组中。我写了一个函数,在 Excel 中它适用于单个单元格或行向量。但是当我在列向量上尝试它时,它会返回为数组中所有值的第一个单元格计算的值。你能帮我吗,我做错了什么或者为什么它不起作用? 我的代码是这样的
选项基础 1
Public Function TestFunction(arr As Range) As Variant
Dim i As Integer
Dim j As Integer
Dim NoCols As Integer
Dim NoRws As Integer
Dim FV() As Double
NoCols = arr.Columns.Count
NoRws = arr.Rows.Count
If NoCols = 1 Then
ReDim FV(NoRws)
For i = 1 To NoRws
x = arr.Rows(i)
FV(i) = x + 5
Next i
Else
ReDim FV(NoCols)
For j = 1 To NoCols
y = arr.Columns(j)
FV(j) = y + 5
Next j
End If
TestFunction = FV()
End Function
【问题讨论】:
-
你的代码中的
FX是什么,你的意思是用FV代替 -
你 ReDim FX 但声明并返回 FV。我看不出在这两种情况下它会如何工作。此代码是否与您的工作代码完全相同?
-
是的,我的意思是 FV,只是输入错误。我已经更正了。在我的原始代码中它是相同的并且它不工作
-
你的假设是错误的。它也适用于列向量。但它在这两种情况下都返回一个行向量。如果给定行向量,是否返回行向量,如果给定列向量,是否返回列向量?
标签: arrays excel vba function vector