Excel VBA错误代码91,对象变量或with块变量未设置

Set s = opening'(opening为打开文件的一个自定义函数)
With s.Worksheets(1)
.Cells.Replace " ", ""
r = .Cells(65536, 1).End(xlUp).Row
arr = .Range("a2:Z" & r).Value
End With
s.Saved = True
s.Close
Set s = Nothing
弹出打开文件对话框时,点:(取消)就会出现这个错误:
With s.Worksheets(1)
请高手指点一下,如何排除这个错误,直接退出程序就行了,谢谢~~

解决办法:

rng = Range(Cells(2, 1), Cells(2, 13)).Offset(j - 1, 0)
改为如下即可:
SET rng = Range(Cells(2, 1), Cells(2, 13)).Offset(j - 1, 0)

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-18
Set s = opening'(opening为打开文件的一个自定义函数)
If s = "False" Then Exit Sub
With s.Worksheets(1)

Set s = opening'(opening为打开文件的一个自定义函数)
on error goto 100
With s.Worksheets(1)
.Cells.Replace " ", ""
r = .Cells(65536, 1).End(xlUp).Row
arr = .Range("a2:Z" & r).Value
End With
s.Saved = True
s.Close
Set s = Nothing
...............
............
100:
end sub
第2个回答  2011-07-18
判断一下是否到了rs.eof
如果没到的话 执行rs.close 如果到了就不要执行rs.close
rs有时候不需要关闭
比如delete运行的时候
第3个回答  2011-07-18
range 没有value的属性吧
第4个回答  2011-07-27
把全部的代码发给我看看,包括那个自定义的 opening本回答被提问者采纳
相似回答