解决办法:
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 脚本。
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
判断一下是否到了rs.eof
如果没到的话 执行rs.close 如果到了就不要执行rs.close
rs有时候不需要关闭
比如delete运行的时候
range 没有value的属性吧
把全部的代码发给我看看,包括那个自定义的 opening