首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA:出错时在单元格中显示"NA“

VBA:出错时在单元格中显示"NA“
EN

Stack Overflow用户
提问于 2017-03-22 02:23:37
回答 1查看 393关注 0票数 1

使用下面的代码,我正在计算RSS。但是,确实会发生Y范围实际上不包含值的情况。我已经超越了错误(运行时错误'1004'),当没有任何带有'on error goto next‘的值时,它就会’复制‘与目标单元格中的前一个值相同的值,而实际上没有任何值。

有没有办法在目标单元格中显示"NA“而不是先前的值,因为缺少Y值而无法计算RSS?

提前谢谢你

代码语言:javascript
复制
Private Sub Regr(strWksData As String, WsTools As Worksheet, strWksFF3 As String, strWksResult As String)

Dim NoOfRow As Long
Dim i As Integer
Dim sData As Worksheet
Dim sFF3 As Worksheet
Dim sResult As Worksheet

Dim rX1 As Range

Dim rY1 As Range


'General
Set sData = Sheets("Return")
Set sFF3 = Sheets("FF-3")
Set sResult = Sheets("Result")

'Set X ranges
Set rX1 = sFF3.Range("C2:E21")

'Set Y ranges

Set rY1 = sData.Range("F2:F21")

'Loop through columns
'Provide statistic
On Error GoTo ErrorHandling
For i = 0 To 5
vStat1 = Application.WorksheetFunction.LinEst(rY1.Offset(0, i), rX1, True, True)
sResult.Range("F2").Offset(0, i).Value = vStat1(5, 2)
NoOfRow = rY1.Rows.Count
WsTools.Range("B2").Value = NoOfRow
Next i


ErrorHandling:

Resume Next
On Error GoTo 0
MsgBox ("RSS Done")


End Sub
EN

回答 1

Stack Overflow用户

发布于 2017-03-22 03:26:33

由于您直接将结果写入工作表,因此只需利用Application.LinEst v.Application.WorksheetFunction.LinEst的不同错误报告行为。

调用完全限定的WorksheetFunction时,在调用的函数中引发的任何错误都将作为运行时错误抛出:

Debug.Print Application.WorksheetFunction.Sum("a", "b") '<--runtime error 1004

Application上使用可扩展接口时,在被调用函数中引发的任何错误都会返回包装在Variant中的错误

Debug.Print Application.Sum("a", "b") '<--Prints Error 2015 (#VALUE!)

如果您需要测试以确定它是否是错误,可以使用IsError函数:

代码语言:javascript
复制
Dim v As Variant
v = Application.Sum("a", "b")
Debug.Print IsError(v)  '<-- True

在您的示例中,您可以直接将错误值写入单元格:

代码语言:javascript
复制
For i = 0 To 5
    Dim result As Variant
    result = Application.LinEst(rY1.Offset(0, i), rX1, True, True)
    'Don't attempt to use the indexer on an error.
    If IsError(result) Then
        sResult.Range("F2").Offset(0, i).Value = result
    Else
        sResult.Range("F2").Offset(0, i).Value = result(5, 2)
    End If
Next
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42935309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档