作者:乔山办公网日期:
返回目录:excel表格制作
一、检查是否你已经手动打开了e68a84e79fa5e98193339c:\1.xls文件?
Set xlBook = xlApp.Workbooks.open("c:\1.xls") 语句的意思是打开c:\1.xls文件,因此,
对于已经打开的c:\1.xls文件,不能执行 Set xlBook = xlApp.Workbooks.open("c:\1.xls") 语句。
二、在每次执行完xlApp对象,需要关闭它才可以再次用代码打开。
如果不关闭代码打开的对象,也会像上面说的那样,出现已经打开文件的错误提示。
在你的事例中,Set xlSheet = xlBook.Worksheets(1)xlSheet.Cells(1, 2) = "11111" 是最后一句
处理 excel 工作表的语句,因此应把关闭对象代码放到这句后面。即:
Private Sub Command2_Click()
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
'Set xlApp = GetObject(, "Excel.Application")
Set xlBook = xlApp.Workbooks.open("c:\1.xls")
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Cells(1, 2) = "11111"
xlBook.Save
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Q1
在打开工作薄之前,zd可以用这个方法来查看工作薄是否打
on error resume next
set wk=xlapp.workbooks("test")
if err then xlapp.workbooks.open("d\test.xls")
on error goto 0
Q2
第二个问题,可用SAVEAS方法,关键是构建一个新文件名回,并且答这个文件名在当前目录并不存在,下面代码仅供参考,可以变化很大
k=1
curpath="d:\"
do
if dir("test"). & K & ".xls")<>"" then
.......saveas
exit do
k=K+1
loop
On Error Resume Next
Name "c:\test.xls" As "c:\test2.xls"
if Err.Number=75 then
msgbox "文件已打百开!"
else
On Error Resume Next
Name "c:\test2.xls" As "c:\test.xls"
endif
这个应该度是够简知单的了吧?不用道后台打开Excel程序专来判断属。
Workbooks("XXXX.xls").Close False/True 将XXXX.xls换成你要关闭的文件名(必须确保已经打开),如果不保存关闭,则参数用False,反之用TRUE