0

我希望单元格 W4 是范围 C 到 V 的标准差。

一些行将是空的,因此无法计算标准偏差。

我想返回一个空白单元格或更好地删除该行。

For i = 1 to 1000
    Range("W4").Cells(i, 1) = Application.WorksheetFunction.IfError(WorksheetFunction.StDev(Range(Range("C4").Cells(i, 1), Range("V4").Cells(i, 1))), "")
Next i
4

1 回答 1

0

使用以下代码,W 列中的单元格将保持不变,以防 Application.WorksheetFunction.IfError(WorksheetFunction.StDev(Range(Range("C4").Cells(i, 1), Range("V4").Cells(i, 1))), "")出现错误。

On Error Resume Next
Range("W4").Cells(i, 1) = Application.WorksheetFunction.IfError(WorksheetFunction.StDev(Range(Range("C4").Cells(i, 1), Range("V4").Cells(i, 1))), "")
On Error GoTo 0

如果要确保 W 列中的单元格为空白,可以使用以下代码

On Error Resume Next
    Range("W4").Cells(i, 1) = Application.WorksheetFunction.IfError(WorksheetFunction.StDev(Range(Range("C4").Cells(i, 1), Range("V4").Cells(i, 1))), "")
    lsterr = Err.Number
    On Error GoTo 0
    If lsterr > 0 Then
        Range("W4").Cells(i, 1).Value = ""
    End If

如果你想删除完整的行,你必须像这样调整循环

For i = 1000 To 1 Step -1
    On Error Resume Next
    Range("W4").Cells(i, 1) = Application.WorksheetFunction.IfError(WorksheetFunction.StDev(Range(Range("C4").Cells(i, 1), Range("V4").Cells(i, 1))), "")
    lsterr = Err.Number
    On Error GoTo 0
    If lsterr > 0 Then
        Range("W4").Cells(i, 1).EntireRow.Delete
    End If
Next i
于 2021-09-24T10:00:41.097 回答