|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
區榮熾
註冊時間: 2005-11-14 文章: 191
第 1 樓
|
發表於: 星期二 三月 24, 2009 7:53 pm 文章主題: 一樣的 .Selection ,我的卻是 ole 程式錯誤!!! |
|
|
oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
o=oleApp.activeWorkbook.activesheet
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Select
With o.Selection
.ColumnWidth = 14
.NumberFormatLocal = "#,##0.0_ "
.Font.Name = "新細明體"
.FontStyle = "斜體"
ENDWITH
VFP是前段,資料處理好要交EXCEL印出,以上程式碼居然出錯:
OLE 錯誤程式碼 0x80020006: UNknown name
不解的是 錯在 With o.Selection 這一行,我也是抄來的(一字一字的抄,有抄錯?)
恭請識者指導..... |
|
回頂端 |
|
|
宏偉軟件
註冊時間: 2009-02-19 文章: 11
第 2 樓
|
發表於: 星期二 三月 24, 2009 9:01 pm 文章主題: |
|
|
oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
o=oleApp.activeWorkbook.activesheet
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").ColumnWidth=14
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").NumberFormatLocal = "#,##0.0_ "
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Font.Name = "新細明體"
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Font.FontStyle = "斜體" _________________ 承接 進銷存、財務軟件,各種企業管理軟件
電話:13075408924
公司網站:www.honwaysoft.com
qq:540072618 |
|
回頂端 |
|
|
garfield Site Admin
註冊時間: 2003-01-30 文章: 2157
第 3 樓
|
發表於: 星期二 三月 24, 2009 10:06 pm 文章主題: |
|
|
.FontStyle = "斜體"
改成
.font..FontStyle = "斜體" _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 4 樓
|
發表於: 星期三 三月 25, 2009 4:29 am 文章主題: |
|
|
宏偉軟件 寫到: | oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
o=oleApp.activeWorkbook.activesheet
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").ColumnWidth=14
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").NumberFormatLocal = "#,##0.0_ "
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Font.Name = "新細明體"
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Font.FontStyle = "斜體" |
謝謝 宏偉軟件 & garfield 二位大師的指導,程式已簡化多了(原是一行一行的設定)
程式太長,才要動手簡化,所以不懂的就從基本開始.....
進入 EXCEL 開一 sheet 錄下要做的動作,編輯巨集,抄錄程式碼,換成VFP 碼..
不解的是 Selection 仿用不成,是否與版本有關呢? 那麼這 Selection 不是指 Select 所選的範圍嗎? (我就是這樣的意思的去套用,卻換回 UnKnown name)
我也利用搜尋 SELECTION 得到文章樣本,套入我的程式就錯誤,不懂不解????
真奇怪,真奇怪,一隻老虎沒有尾..............別人可以我就不行.......... |
|
回頂端 |
|
|
bin1x
註冊時間: 2004-08-27 文章: 462
第 5 樓
|
發表於: 星期三 三月 25, 2009 5:39 pm 文章主題: |
|
|
可能多重選擇,不能形成它(vfp)認識的物件吧,哈
也許在那段程式中斷,在debug 視窗,看o.selection可不可以展開
就知道它是不是物件了 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 6 樓
|
發表於: 星期四 三月 26, 2009 8:02 am 文章主題: |
|
|
bin1x 寫到: | 可能多重選擇,不能形成它(vfp)認識的物件吧,哈
也許在那段程式中斷,在debug 視窗,看o.selection可不可以展開
就知道它是不是物件了 |
謝謝bin1x 大
多欄位改成單一的Select,再用 With o.Selection EndWith 還是一樣的不認識..
不用簡易方式,程式也一樣進行,多鍵些碼而已............再找原因,慢慢來.... |
|
回頂端 |
|
|
chilin
註冊時間: 2003-10-01 文章: 79 來自: Taipei,Taiwan
第 7 樓
|
發表於: 星期四 三月 26, 2009 12:47 pm 文章主題: |
|
|
oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
oleApp.WORKSHEETS("SHEET1").ACTIVATE
oleApp.COLUMNS("B:B").ColumnWidth=14
OR
oleApp.COLUMNS(2).ColumnWidth=14
這樣試試看!!! _________________ 一個喜愛Latte的男人 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 8 樓
|
發表於: 星期四 三月 26, 2009 4:05 pm 文章主題: |
|
|
chilin 寫到: | oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
oleApp.WORKSHEETS("SHEET1").ACTIVATE
oleApp.COLUMNS("B:B").ColumnWidth=14
OR
oleApp.COLUMNS(2).ColumnWidth=14
這樣試試看!!! |
謝謝 chilin 大所寫的,我的程式可以執行的.....
我要的是 .Selection 為何不能像其他高手們使用 With oleapp.selection ..
EndWith 一樣方式 的設定, 真不知 .Selection 是什麼東東,我用時就出現 Unknown Name 的錯誤訊息......(不知這 .Selection 的HELP 在那兒找....) |
|
回頂端 |
|
|
sean27
註冊時間: 2008-08-17 文章: 49
第 9 樓
|
發表於: 星期四 三月 26, 2009 6:30 pm 文章主題: |
|
|
>>> With o.Selection
應該是 with oleApp.Selection 才對吧 _________________ foxpro & php 初學者 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 10 樓
|
發表於: 星期四 三月 26, 2009 8:18 pm 文章主題: |
|
|
sean27 寫到: | >>> With o.Selection
應該是 with oleApp.Selection 才對吧 |
o=oleApp.activeWorkbook.activesheet
我已經用 o 簡化了,即不需用那麼樣長的句子,應該不是這問題(我也用過oleapp.Selection 結果一樣 UNknown name)
謝謝 sean27 兄的指導...... |
|
回頂端 |
|
|
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 11 樓
|
發表於: 星期四 三月 26, 2009 9:12 pm 文章主題: |
|
|
oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
o=oleApp.activeWorkbook.activesheet
**下兩行改為其下的三行,原因懶得說,多多利用 [命令] 視窗的 IntelliSense 功能 (當然要有支援此功能的 VFP 版本)
**o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Select
**With o.Selection
bb = o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R")
WITH bb
.Select
.ColumnWidth = 14
.NumberFormatLocal = "#,##0.0_ "
.Font.Name = "新細明體"
** 下一行改為其下一行
**.FontStyle = "斜體"
.Font.FontStyle = "斜體"
ENDWITH _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 12 樓
|
發表於: 星期五 三月 27, 2009 9:35 am 文章主題: |
|
|
朱育興 寫到: | oleApp=Createobject("Excel.Application")
If Type("oleApp")="U"
=MessageBox("本機上未安裝 EXCEL 軟體 ! ",0+48, (Sys_na2) )
Releas oleApp, cDir_old
Return
Endif
Excelfile= SYS(5)+Curdir()+"Data\Xls\Score_base.xls"
oleApp.Visible=.T.
oleApp.Workbooks.open( Excelfile)
o=oleApp.activeWorkbook.activesheet
**下兩行改為其下的三行,原因懶得說,多多利用 [命令] 視窗的 IntelliSense 功能 (當然要有支援此功能的 VFP 版本)
**o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Select
**With o.Selection
bb = o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R")
WITH bb
.Select
.ColumnWidth = 14
.NumberFormatLocal = "#,##0.0_ "
.Font.Name = "新細明體"
** 下一行改為其下一行
**.FontStyle = "斜體"
.Font.FontStyle = "斜體"
ENDWITH |
朱老師: 謝謝您!
.Select 我不用, 因為在寫資料及設定,同時進行,畫面晃動很大,不理想之故.
其他就達到目的了,也就是山不轉路轉,Unknown > Known......成了, 謝謝啦! |
|
回頂端 |
|
|
sean27
註冊時間: 2008-08-17 文章: 49
第 13 樓
|
發表於: 星期五 三月 27, 2009 4:58 pm 文章主題: |
|
|
我試了以下程式碼, 程式執行無誤
oleApp=Createobject("Excel.Application")
oleApp.Visible=.T.
oleapp.workbooks.add
oleApp.SHEETS.ADD
o = oleapp.activesheet
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Select
With oleapp.Selection
.font .Name = "新細明體"
.font .size=20
.ColumnWidth = 14
.NumberFormatLocal = "#,##0.0_ "
endwith
RETURN
=====================
但是如果 with oleapp.Selection 改成 with o.Selection
就會發生 ole 錯誤, 其實 o 跟 oleapp 是不一樣的 !! _________________ foxpro & php 初學者 |
|
回頂端 |
|
|
區榮熾
註冊時間: 2005-11-14 文章: 191
第 14 樓
|
發表於: 星期六 三月 28, 2009 1:19 am 文章主題: |
|
|
sean27 寫到: | 我試了以下程式碼, 程式執行無誤
oleApp=Createobject("Excel.Application")
oleApp.Visible=.T.
oleapp.workbooks.add
oleApp.SHEETS.ADD
o = oleapp.activesheet
o.Range("B:B,C:C,E:E,F:F,J:J,L:L,M:M,R:R").Select
With oleapp.Selection
.font .Name = "新細明體"
.font .size=20
.ColumnWidth = 14
.NumberFormatLocal = "#,##0.0_ "
endwith
RETURN
=====================
但是如果 with oleapp.Selection 改成 with o.Selection
就會發生 ole 錯誤, 其實 o 跟 oleapp 是不一樣的 !! |
Sean27兄: 經您寫的程式碼,才知道 .Selection 的位置要放置在 oleApp之下,且不接受代碼處理,所以連日來的結打開了,是我的不知,還怪VFP對我特別禮遇!
謝謝回我文的熱心網友........誠祝各位身心康樂! |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|