在excel VBA中如何判定单元格中的数据类型是整数还是其他呢?

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:06:34
如果可以大虾帮我写段代码吧,我写的老是提示错误13,
问题1.主要用意是对a列里面的数值进行判定,如果是整数且大于1那就在本行执行插入一行,如果不是整数类型或为空值的就不操作
问题2.想要返回被选定行的行数值该如何写代码?
先谢谢了!~
你的这两个代码我都试过,怎么还是有错误13:类型不匹配,难道我这边程序的问题?呵呵
这里要说明下的是a列数据中有字符主要是区分数与字符!~忘了说了!~呵呵前辈这里所说的int()应该是判定数值是不是整数的!没有考虑是不是字符呢!~~呵呵

在VBA里面,可以使用VarType获得变量以及单元格的数据类型,数值类型值为5(vbDouble)、空类型为0(vbEmpty)、字符串类型为8(vbString )。


例子代码1:显示A1单元格的数据类型

Sub test()
    MsgBox VarType([a1])
End Sub



例子代码2:判断A1单元格数据类型是否数值

Sub test()
    If VarType([a1]) = vbDouble Then
        MsgBox "A1是数值类型"
    Else
        MsgBox "A1不是数值类型"
    End If
End Sub


实际上VB还有vbLong、vbDecimal等类型,但单元格为数值时默认是vbDouble。

那你试试下面这样,先判断是否为数

1,
Sub qgrmdtj()
For i = [a65536].End(xlUp).Row To 1 Step -1
If IsNumeric(Cells(i, 1)) Then
If Cells(i, 1) = Int(Cells(i, 1)) And Cells(i, 1) > 1 Then
Rows(i).Insert