之前也遇到过类似问题
使用的是 2003
貌似如果同时打开两个excel 的时候,,关闭其中一个的时候另一个也会跟着关闭
(做个试验,分别创建两个excel文件,保存后全部关闭,然后分别双击这两个文件,打开任务管理器,发现了么,只有一个excel进程)
导致vfp对excel操作失败
但是,如果是双击excel.exe创建的excel进程,则是一个独立的进程
到这里就有了两种解决方法
打开某个文件前检查是否有excel进程,如果有,提示关闭,并在vfp操作excel的时候提示不要打开其他excel文件
程序代码:
Clear
Declare integer CreateToolhelp32Snapshot in win32api integer,integer
Declare integer Process32First in win32api integer,string @
Declare integer Process32Next in win32api integer,string @
Declare integer CloseHandle in win32api integer
CLEAR
lnHand = 0
lnHand = CreateToolhelp32Snapshot(3,0)
If lnHand>0
lctitle=SPACE(256)
If Process32First(lnHand,@lctitle) > 0
tln = 0
Do while Process32Next(lnHand,@lctitle)> 0
m.lnval=SUBSTR(lctitle,37,256)
m.lnval=left(m.lnval,AT(CHR(0),m.lnval) - 1)
If Lower(m.lnval) == 'excel.exe'
tln = tln + 1
If tln == 2
Exit
Endif
Endif
Enddo
If tln == 3
Messagebox("Excel进程正在运行",4096,"Message")
CloseHandle(lnHand)
Clear Dlls
Endif
Endif
CloseHandle(lnHand)
Endif
2. 就是直接运行excel.exe来创建独立的进程,则不会受其他进程的影响
(没有具体使用过,有兴趣的可以研究研究)