【发布时间】:2016-05-29 06:27:50
【问题描述】:
我有这个问题,
我有这一行 Dim i, j, x, y, Labels As Integer ,当我想在循环中以以下方式使用 Labels 变量时,我收到一个错误:Labels = CInt(DBRange.Rows(i).Item(10).Value) ,将 DBRange 视为工作表上的一个数据库,其中包含 10列和 10 行为例。
那么,如果变量 i 是一个整数,并且变量 Labels 也是一个整数,并且如果我正在转换使用 CINT 函数将单元格值转换为整数?
【问题讨论】:
-
工作表上的数据库?
Msgbox DBRange.Rows(i).Item(10).Value返回什么?而Dim i, j, x, y, Labels As Integer仅将Labels声明为整数类型其余所有Varaint类型的变量,即它们可以保存任何数据类型值。使用Dim i As Integer, j As Integer, x As Integer, y As Integer, Labels As Integer将它们全部声明为整数类型。 -
注意:
Dim i, j, x, y, Labels As Integer只创建一个整数变量 (Labels)。其他变量被创建为 Variant。您必须在 VB(A) 声明中单独指定每个变量的数据类型。 -
CInt() 函数中的表达式很可能不会返回可转换为整数类型的值。由于 Range 对象的 Item() 属性可能会导致调用它的 Range 之外的单元格,我建议在有问题的行处放置一个断点并使用即时窗口来查询 DBRange 的 .Address 和 .Value 属性。行(i).Item(10)