为什么会这样?“activex component cant create object”
Me.CommonDialog1.CancelError = True
CommonDialog1.Filter = "(Excel)*.xls,*.xlsx|*.xls;*.xlsx"
Me.CommonDialog1.ShowOpen
sfn = Me.CommonDialog1.FileName
Text1.Text = sfn
If Err = cdlCancel Then
Exit Sub
End If
'判断文件是否已经打开
Dim excelApp As Object
shortName = fs.GetFileName(sfn)
Me.CommonDialog1.CancelError = True
CommonDialog1.Filter = "(Excel)*.xls,*.xlsx|*.xls;*.xlsx"
Me.CommonDialog1.ShowOpen
sfn = Me.CommonDialog1.FileName
Text1.Text = sfn
If Err = cdlCancel Then
Exit Sub
End If
'判断文件是否已经打开
Dim excelApp As Object
shortName = fs.GetFileName(sfn)
Set excelApp = GetObject(, "Excel.Application")
If Err Then
程序运行Set excelApp = GetObject(, "Excel.Application")就提示错误“activex component can‘t create object”
究竟是什么原因呢?请高手指点。
我的目的是想在打开文件前判断一下文件是否已经打开。
[解决办法]
Set excelApp = CreateObject( "Excel.Application")
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
GetObject必须要已经打开了Excel,而CreateObject的方式会不停打开新的Excel进程,最好的方式是
Dim excelApp As Object
on error resume next
Set excelApp = GetObject(, "Excel.Application") '先取已存在的Excel实例
on error goto 0
if excelApp is nothing then
Set excelApp = CreateObject( "Excel.Application") '没有就新开一个
end if
[解决办法]
不懂和我上面的有什么区别。我只是想判断一下用户是否已经把我想处理的文件打开了
[解决办法]
以为你问如何应对GetObject的错误;如果只要检查Excel是否打开,只要按下面的方式就可以了
dim xlBook as object
on error resume next
set xlBook = GetObject("C:\Book1.xls", "Excel.Application")
on error goto 0
if xlBook is nothing then
msgbox "文件未打开"
else
msgbox "文件已打开"
end if
[解决办法]
用户不可能都会把表格存在C盘啊,"C:\Book1.xls"是指的路径和名称吗?我是想做个判断,看用户是否打开了我要处理的那个表,你这样写的话,是不是就把路径和名称定死了呢?
[解决办法]
那你不会用变量吗,晕死,人家只是举个例子,怎么可能知道你具体要哪个文件
[解决办法]
'判断文件是否已经打开
Dim excelApp As Object
shortName = fs.GetFileName(sfn)
Set excelApp = GetObject(, "Excel.Application")
If Err Then
程序运行Set excelApp = GetObject(, "Excel.Application")就提示错误“activex component can‘t create object”
在这个函数的开始部分,加上 on error resume next,程序应该可以正常运行