首页 > 解决方案 > 尝试检查单元格是否包含整数时运行时错误 13 类型不匹配

问题描述

Sub Adder()

Dim WR As Worksheet
Dim i As Integer
Dim x As Variant

Set WR = ActiveWorkbook.Sheets("Weekly Report")

For i = 2 To 200
    x = WR.Cells(i, 1).Value
    If Int(x) = x Then
        WR.Cells(i, 25).Value = WR.Cells(i, 1).Value
    Else:
        WR.Cells(i, 25).Value = 123
    End If
Next i

End Sub

我试图查看一个单元格是否包含一个整数,If 语句正在工作,但是当它到达一个字符串时抛出一个错误。为什么 else 语句不处理它,我是否必须进行某种错误处理?提前致谢

标签: vbaexcel

解决方案


将您的 If 包装在另一个中,以测试该值是否为数字。

Sub Adder()

Dim WR As Worksheet
Dim i As Integer
Dim x As Variant

Set WR = ActiveWorkbook.Sheets("Weekly Report")

For i = 2 To 200
    x = WR.Cells(i, 1).Value
    If IsNumeric(x) Then
        If Int(x) = x Then
            WR.Cells(i, 25).Value = WR.Cells(i, 1).Value
        Else
            WR.Cells(i, 25).Value = 123
        End If
    End If
Next i

End Sub

推荐阅读