过滤后循环通过可见细胞

时间:2017-10-30 11:43:25

标签: excel-vba autofilter vba excel

For Each cell In rnData.Columns(13).SpecialCells(xlCellTypeVisible)
    If cell > 0.25 And cell < 0.3 And cell.Offset(0, 3) >= valueMin And cell.Offset(0, 3) < valueMax And Year(cell.Offset(0, -2)) = Year(Sheet3.Cells(4, 3)) And Month(cell.Offset(0, -2)) = Month(Sheet3.Cells(4, 3)) Then
        sum1 = sum1 + cell.Offset(0, 7)
    End If
Next

此代码返回运行时错误13,可能是什么问题?

1 个答案:

答案 0 :(得分:0)

如果您尝试将字符串添加到数字,则可以实现错误编号13。 因此,在sum1 = sum1 + cell.Offset(0, 7) cell.Offset(0,7)中可能是一个字符串。

重写你的代码:

For Each cell In rnData.Columns(13).SpecialCells(xlCellTypeVisible)
    If cell > 0.25 And cell < 0.3 And cell.Offset(0, 3) >= valueMin And cell.Offset(0, 3) < valueMax And Year(cell.Offset(0, -2)) = Year(Sheet3.Cells(4, 3)) And Month(cell.Offset(0, -2)) = Month(Sheet3.Cells(4, 3)) Then
        debug.print cell.Offset(0,7);sum
        sum1 = sum1 + cell.Offset(0, 7)
    End If
Next

当运行时错误出现时,按 Ctrl + G 并查看即时窗口中的值。其中一个应该是一个字符串,而不是一个数字。