【问题标题】:VBA script #VALUEVBA 脚本 #VALUE
【发布时间】:2021-01-28 21:39:00
【问题描述】:

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

    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 参数之外,其他两个是一系列数字单元格。

【问题讨论】:

  • 尝试WorksheetFunction之前的Application,如下RQUAD = Application.WorksheetFunction.RSq(KY.Value, KX.Value)XX.Value 总是比 XX 好。

标签: excel vba


【解决方案1】:

您正在引用单元格对象。在引用它们的地方尝试 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
    

结束函数

【讨论】:

  • 谢谢你帮助我。但在那之后,我对我的代码进行了一些更改,添加了一个新变量并在 if statmente 中进行了另一个逻辑测试以改进他,我得到了同样的错误。
猜你喜欢
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 2014-11-06
  • 2015-06-13
相关资源
最近更新 更多