我已经修改了下面的vba函数以满足我的需要。
我有许多工作簿,其中包含 4500 多行的工作表,我使用该函数搜索两个给定值(作为边界)。然后,它选择行作为范围。最后,在该范围内做任何事情。功能:
Function GeoM(A, B)
Application.Volatile
Dim x As Integer
Dim y As Integer
Dim rng As Range
x = Application.WorksheetFunction.Match(A, Range("B:B"), 0) ' looking in col B
y = Application.WorksheetFunction.Match(B, Range("B:B"), 0) ' looking in col B
Set rng = Range(Cells(x, 18), Cells(y, 18)) 'Im working on col 18
GeoM = Application.WorksheetFunction.GeoMean(rng)
End Function
问题是,除了GeoMean
n 之外,这段代码工作得很好。我注意到当数据范围相对较小(数据单元格的数量)时,它会返回一个值。但是,如果范围大于约。126 个细胞,它返回#value!
.
我被困住了,正在努力解决这个问题。该GeoMean
功能是否仅限于给定数量的数据?
谢谢