excel vba range 问题
第一幅图运行到黄色句子出提示对象块或with变量未设置,为什么前面三句没问题,都是一样的东西,应该怎么改第二幅图把刚出错的那句设置成注释,后面的还是运行不了,提示对象不支...
第一幅图运行到黄色句子出提示对象块或with变量未设置,为什么前面三句没问题,都是一样的东西,应该怎么改第二幅图把刚出错的那句设置成注释,后面的还是运行不了,提示对象不支持该属性或方法,怎么解决呢
第一个问题自己解决了,第二个还是不知道 展开
第一个问题自己解决了,第二个还是不知道 展开
展开全部
答:
出错的原因是定义变量引起。dim r11,r12,r21,r22 as range
根据VBA语法,以上定义只有R22被定义为Range对象,而r11,r12,r21相当于没定义,是默认的variant数据类型,即:可变体类型。
既然是可变体类型,就可以赋值任何数据类型,比如R11=sheet1.range(cells(2,1),cells(i1,1))
此时R11实际上是被赋值了成为了数组。而你本意是赋值为单元格对象。但是此句不会出错,但就如你所言在后面出错了,因为R11是数组。
要赋值对象,要用Set关键字。
综上所述。程序应改的地方有:
dim i1 as integer,i2 as integer
dim r11 as range,r12 as range,r21 as range,r22 as range
set r11=sheet1.range(cells(2,1),cells(i1,1))
往下3句都要修改。
出错的原因是定义变量引起。dim r11,r12,r21,r22 as range
根据VBA语法,以上定义只有R22被定义为Range对象,而r11,r12,r21相当于没定义,是默认的variant数据类型,即:可变体类型。
既然是可变体类型,就可以赋值任何数据类型,比如R11=sheet1.range(cells(2,1),cells(i1,1))
此时R11实际上是被赋值了成为了数组。而你本意是赋值为单元格对象。但是此句不会出错,但就如你所言在后面出错了,因为R11是数组。
要赋值对象,要用Set关键字。
综上所述。程序应改的地方有:
dim i1 as integer,i2 as integer
dim r11 as range,r12 as range,r21 as range,r22 as range
set r11=sheet1.range(cells(2,1),cells(i1,1))
往下3句都要修改。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询