首页 > 解决方案 > VBA 脚本 #VALUE

问题描述

我想知道是否有人可以告诉我以下代码有什么问题

    Function CAPACIDADEPORT(KY As Range, KX As Range, UX)

    Dim RQUAD As Double
    
    RQUAD = WorksheetFunction.RSq(KY, KX)
    If RQUAD > 0.6 Then
        CAPACIDADEPORT = WorksheetFunction.Trend(KY, KX, UX)
        
    Else:
        CAPACIDADEPORT = WorksheetFunction.Average(ActiveCell.Offset(-5))
    End If
        
   End Function

我的目标是创建一个函数,如果 rquad 值小于 0.6,则返回最后一行的平均值,如果 rqud 大于或等于 0.6,则返回趋势。但是当我应用代码时,它返回给我一个#VALUE,因为除了通用格式的 UX 参数之外,其他两个是一系列数字单元格。

标签: excelvba

解决方案


您正在引用单元格对象。在引用它们的地方尝试 KY.Value、KW.Value、UX.Value。

Function CAPACIDADEPORT(KY As Range, KX As Range, UX)

Dim RQUAD As Double

RQUAD = WorksheetFunction.RSq(KY.Value, KX.Value)
If RQUAD > 0.6 Then
    CAPACIDADEPORT = WorksheetFunction.Trend(KY.Value, KX.Value, UX.Value)
    
Else:
    CAPACIDADEPORT = WorksheetFunction.Average(ActiveCell.Offset(-5))
End If
    

结束功能


推荐阅读