乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>EXCEL</em> VBA中,如何判断数据类型?

<em>EXCEL</em> VBA中,如何判断数据类型?

作者:乔山办公网日期:

返回目录:excel表格制作


任何对象都有属性,我们在录入代码是,可以看到其属性。如下图,我们输入“worksheets.”后将会看到下拉列表,列表中包含了对应的属性和方法。

从形状上来区别:前面带绿色图标的就是方法,带手形标志的就是属性。

VBA对象的方法,指的是某个对象所能执行的动作

比如“创建工作表”,创建是动词,表示方法,它有一个动作,每个动作会产生一个可见的结果。工作表是名词,表示对象。

VBA中对象在前,方法在后。

Worksheets.add——worksheets是工作表对象,add是方法,表示新建。



用TypeName()函数可以判断。
比如
TypeName(i)="Single" 就是单精度浮点数
TypeName(i)="String" 就是字符串
Private Sub CommandButton1_Click()
dim icell as range '应该定义一下icell为range类型
r = Range("A65536").End(xlUp).Row ’将A列最后一个非空行的行号赋值给r
crr = Sheets("2013年").[C2:C129] '将单元格区域存入数组,提高运行效率
grr = Sheets("2013年").[G2:G129] '同上
For Each icell In Sheets("当月").Range("C4:C" & r) '对于“当月”表的c4:c(r)区域,
'这里的r是上面的r,不过不清楚为什么会出现一个当月表。
tmp = "" 'tmp赋值为空
For i = 1 To UBound(crr) '第2层FOR循环
   If icell = crr(i, 1) Then ’如果icell单元格的值与数组crr的第i-1个元素相等。
   tmp = grr(i, 1)  ’将grr数组的第i-1 个元素赋值给tmp,并退出该层for循环
   Exit For
   End If
Next i
icell.Value = tmp '将tmp的值赋值给icell
Next
End Sub

这段改成下e799bee5baa6e997aee7ad94e4b893e5b19e331面的试试

For i = 1 To UBound(crr) '第2层FOR循环
   If icell = crr(i-1) Then ’如果icell单元格的值与数组crr的第i个元素相等。
   tmp = grr(i-1)  ’将grr数组的第i个元素赋值给tmp,并退出该层for循环


在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。

相关阅读

  • <em>EXCEL</em> VBA中,如何判断数据类型?

  • 乔山办公网excel表格制作
  • 任何对象都有属性,我们在录入代码是,可以抄看到其属性。如下图,我们输入“袭worksheets.”后将会看到下拉列表,列表中包含了对应的属性和方法。从形状上来区别百:前面带绿色图
关键词不能为空

ppt怎么做_excel表格制作_office365_word文档_365办公网