vba中对象变量或者with块变量未设置什么意思
Subupdatedata(shAsWorksheet,jAsInteger)Withsh.Cells(j,1)=frmemp.txtNo.Value.Cells(j,2...
Sub updatedata(sh As Worksheet, j As Integer)
With sh
.Cells(j, 1) = frmemp.txtNo.Value
.Cells(j, 2) = frmemp.txtName.Value
.Cells(j, 3) = frmemp.cbxSex.Value
.Cells(j, 4) = frmemp.txtAge.Value
.Cells(j, 5) = frmemp.txtID.Value
.Cells(j, 6) = frmemp.cbxQual.Value
.Cells(j, 7) = frmemp.txtSchool.Value
.Cells(j, 8) = frmemp.txtProf.Value
.Cells(j, 9) = frmemp.txtTelephone.Value
.Cells(j, 10) = frmemp.txtWorklife.Value
.Cells(j, 11) = frmemp.cbxDep.Value
.Cells(j, 12) = frmemp.cbxJob.Value
.Cells(j, 13) = frmemp.txtWorkdate.Value
.Cells(j, 1) = frmemp.txtMemo.Value
End With
End Sub
Sub deletedata()
Dim irow As Integer
On Error GoTo noemp
With Sheets("员工信息")
irow = .Columns(1).Find(txtNo.Value).Row
.Rows(irow).Delete
End With
Exit Sub
noemp:
MsgBox "没有找该员工编号"
End Sub
只有这两处用到with语句 展开
With sh
.Cells(j, 1) = frmemp.txtNo.Value
.Cells(j, 2) = frmemp.txtName.Value
.Cells(j, 3) = frmemp.cbxSex.Value
.Cells(j, 4) = frmemp.txtAge.Value
.Cells(j, 5) = frmemp.txtID.Value
.Cells(j, 6) = frmemp.cbxQual.Value
.Cells(j, 7) = frmemp.txtSchool.Value
.Cells(j, 8) = frmemp.txtProf.Value
.Cells(j, 9) = frmemp.txtTelephone.Value
.Cells(j, 10) = frmemp.txtWorklife.Value
.Cells(j, 11) = frmemp.cbxDep.Value
.Cells(j, 12) = frmemp.cbxJob.Value
.Cells(j, 13) = frmemp.txtWorkdate.Value
.Cells(j, 1) = frmemp.txtMemo.Value
End With
End Sub
Sub deletedata()
Dim irow As Integer
On Error GoTo noemp
With Sheets("员工信息")
irow = .Columns(1).Find(txtNo.Value).Row
.Rows(irow).Delete
End With
Exit Sub
noemp:
MsgBox "没有找该员工编号"
End Sub
只有这两处用到with语句 展开
3个回答
展开全部
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、最后选择“运行”按钮运行。
展开全部
这个错误有时候是指所引用的对象并不存在,或者没有初始化,当继续使用这个对象的属性或者方法时,就会出现“对象变量或者with块变量未设置”的错误提示。
更多追问追答
追问
要怎么解决
追答
不知道具体是在哪一句出错了?
分析出错的那句代码,就可知道是哪个对象有问题。
当出错时,请点“调试”,查看黄色标记的那行代码,
然后将其中的对象添加到监视列表,观察对象引用是否正确。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
frmemp这个东西貌似没有定义在这两个模块中。
irow = .Columns(1).Find(txtNo.Value).Row
中txtNo也没有指定是哪个
irow = .Columns(1).Find(txtNo.Value).Row
中txtNo也没有指定是哪个
追问
你说的这两个一个是窗体的名字,一个是文本框控件的名字
追答
irow = .Columns(1).Find(txtNo.Value).Row
如果这个在 with sheet(表名称)下
就不能省略txtNo前面的对象了。不然找不到这个Textbox的,为什么不给窗体中的数据都建个对应的变量做存储
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询