| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		elson
 
 
  註冊時間: 2004-05-16 文章: 10
 
  第 1 樓
  | 
		
			
				 發表於: 星期一 十二月 15, 2008 4:19 pm    文章主題: 如何控制已開啟的Excel ? | 
				     | 
			 
			
				
  | 
			 
			
				參考之前的文章很多先進都用以下方法控制Excel
 
eole=CREATEOBJECT('Excel.application')
 
eole.Workbooks.add
 
.....
 
 
想請問如果Excel及其檔案使用者已事先開啟了,我要怎麼去控制呢? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		lelhappy
 
 
  註冊時間: 2004-06-04 文章: 20
 
  第 2 樓
  | 
		
			
				 發表於: 星期二 十二月 16, 2008 9:22 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				支持一下...
 
 
我也有這樣的問題.... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		candy7240
 
 
  註冊時間: 2008-12-02 文章: 8
 
  第 3 樓
  | 
		
			
				 發表於: 星期二 十二月 16, 2008 1:52 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				If !Type("eole")="O" &&判斷是否為物件
 
	eole=Createobject('Excel.application')
 
	eole.Workbooks.Open(m_file)
 
Endif
 
 
如果不是物件的話,就在開啟,有的話,就跳過不做 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		elson
 
 
  註冊時間: 2004-05-16 文章: 10
 
  第 4 樓
  | 
		
			
				 發表於: 星期四 十二月 18, 2008 8:05 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				找到了...
 
 
*- See if Excel is already open otherwise we need to start it.
 
m.lOldSetOpt = DDESetOption("SAFETY")
 
=DDESetOption("SAFETY",.F.)
 
m.sysch=DDEInitiate("Excel","System")
 
IF m.sysch = -1	&&failed	
 
	oleApp = CreateObject("Excel.Application")
 
	oleApp.workbooks.add
 
	oleApp.visible=.T.
 
	oleApp.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value = "ADD"
 
ELSE
 
	=DDETerminate(m.sysch)
 
	oleApp = GETOBJECT(, "Excel.Application")
 
	oleApp.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value = "=111+111"
 
	oleApp.ActiveWorkbook.ActiveSheet.Cells(1, 2).Value = "111"
 
ENDIF | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		richshih
 
 
  註冊時間: 2007-10-11 文章: 153
 
  第 5 樓
  | 
		
			
				 發表於: 星期四 十二月 18, 2008 9:37 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				可試試以下
 
try 
 
oleApp = GETOBJECT(, "Excel.Application") 
 
oleApp.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value = "=111+111" 
 
oleApp.ActiveWorkbook.ActiveSheet.Cells(1, 2).Value = "111" 
 
catch
 
oleApp = CreateObject("Excel.Application") 
 
oleApp.workbooks.add 
 
oleApp.visible=.T. 
 
oleApp.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value = "ADD" 
 
endtry | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |