vba 对象变量或with块未设置是设置错误造成的,解决方法为:
1、首先打开excle软件,在菜单中选择“开发工具”-》“Visual Basic”,进入VBA的编程界面。
2、选择一个对象,这里选择sheet1,新建一个子过程setobgjs。
3、首先是声明对象变量,通过Dim来声明,和普通变量的声明很类似,只不过是数据类型变为了Object,如: Dim obj1 As Object。
4、设置该对象变量的值,可以通过set方法来设置,如Set obj1 = Range("A1")。
5、对这个对象所表示的边框设置底色,为黄色。
6、最后选择“运行”按钮运行。
1、这个错误有时候是指所引用的对象并不存在,或者没有初始化,当继续使用这个对象的属性或者方法时,就会出现“对象变量或者with块变量未设置”的错误提示。
2、造成这种错误的原因:
1)该引用的对象库没有引用,去工具菜单下单击引用,选择应该引用的对象库。
2)写错了控件名,修改成对应控件即可。
3)使用数据库对象时没有打开数据库,设置数据源,然后打开数据库。
对象变量或 With 块变量没有设置(错误 91)
创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用 Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用 With 语句进入点来执行初始化。此错误有以下的原因和解决方法:
试图使用的对象变量,还没有用一个正确对象的引用来赋值。
给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set 语句的话,那么引用 MyObject 将会产生错误:
Dim MyObject As Object ' 创建对象变量。
Set MyObject = Sheets(1) ' 创建一个正确的对象引用。
MyCount = MyObject.Count ' 计数值赋给 MyCount。
试图用的对象变量已经被设为 Nothing。
Set MyObject = Nothing ' 释放此对象。
MyCount = MyObject.Count ' 引用了已释放的对象。
再指定引用给对象变量。例如,使用新的 Set 语句给对象设置新的引用。
此对象是正确的对象,但没有被设置,因为在对象库中,在 “引用” 对话框中没有被选取。
在 “添加引用” 对话框选择对象库。
在 With 块内GoTo 语句的去向。
不要跳进 With 块。确保块使用 With 语句进入点以执行初始化。
当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。
With 块必须用 With 语句执行初始化。
对象变量或 With
块变量没有设置(错误 91)
创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用
Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用
With 语句进入点来执行初始化。此错误有以下的原因和解决方法:
*试图使用的对象变量,还没有用一个正确对象的引用来赋值。
给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set 语句的话,那么引用 MyObject 将会产生错误:
Dim MyObject As Object ' 创建对象变量。
Set MyObject = Sheets(1) ' 创建一个正确的对象引用。
MyCount = MyObject.Count ' 计数值赋给 MyCount。
*试图用的对象变量已经被设为 Nothing。
Set MyObject = Nothing ' 释放此对象。
MyCount = MyObject.Count ' 引用了已释放的对象。
再指定引用给对象变量。例如,使用新的 Set 语句给对象设置新的引用。
*此对象是正确的对象,但没有被设置,因为在对象库中,在
“引用” 对话框中没有被选取。
在 “添加引用” 对话框选择对象库。
*在 With 块内GoTo 语句的去向。
不要跳进 With 块。确保块使用 With 语句进入点以执行初始化。
*当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。
With 块必须用 With 语句执行初始化。
Sheet1.Range("g" & f) = Sheet2.Cells(e.Row, 1)‘问题出在这个地方
前面加上一句:
if e is nothing then msgbox "没有找到改数据" :exit sub
Sheet1.Range("g" & f) = Sheet2.Cells(e.Row, 1)‘问题出在这个地方