|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
sthuang66
註冊時間: 2014-04-27 文章: 173
第 1 樓
|
發表於: 星期日 一月 23, 2022 2:14 am 文章主題: 請教VFP9.0控制EXCEL剪貼時產生的錯誤訊息!!麻煩各位高手指點!!! |
|
|
我有A2.dbf,b2.dbf,c2.dbf,d2.dbf 四個檔!要計算其中每個DBF中的'99百分位'
'95百分位','90百分位','75百分位','50百分位','25百分位' 然後將內容併在一個EXCEL檔案中!!! 我的筆電EXCE版本是office 2019!我以下的程序碼在筆電都不會有問題!!但是公司EXCEL是2010執行到粗體字那一行時就會有附件圖的錯誤訊息!!!奇怪的是我若選擇Ignore選項時,第一個DBF檔轉成XLSX的百分位內容不會貼入!!但是其他不分卻會繼續執行按照我寫的逐一填入新的XLSX中!!讓我完全摸不出頭緒!!明明所有剪下貼上的程序都一樣,為何第一個檔會認不到!後面可以!!下面是我的程序碼
------------------------------------------------------------------------
OLE=CREATEOBJECT("EXCEL.APPLICATION")
OLE.VISIBLE=.T.
USE A2.DBF
RE='B'+ALLTRIM(STR(RECCOUNT()+1))
USE
OLE.WORKBOOKS.OPEN(""+PATH+"A2.XLS")
OLE.ACTIVEWORKBOOK.SAVEAS(""+PATH+"A2.XLSX",51)
OLE.WORKBOOKS.OPEN(""+PATH+"A2.XLSX")
OLE.RANGE('D1').VALUE='=PERCENTILE.INC($B$2:&RE,0.99)'
OLE.RANGE('E1').VALUE='=PERCENTILE.INC($B$2:&RE,0.95)'
OLE.RANGE('F1').VALUE='=PERCENTILE.INC($B$2:&RE,0.90)'
OLE.RANGE('G1').VALUE='=PERCENTILE.INC($B$2:&RE,0.75)'
OLE.RANGE('H1').VALUE='=PERCENTILE.INC($B$2:&RE,0.50)'
OLE.RANGE('I1').VALUE='=PERCENTILE.INC($B$2:&RE,0.25)'
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
USE D2.DBF
RE1='B'+ALLTRIM(STR(RECCOUNT()+1))
USE
OLE.WORKBOOKS.OPEN(""+PATH+"D2.XLS")
OLE.ACTIVEWORKBOOK.SAVEAS(""+PATH+"D2.XLSX",51)
OLE.WORKBOOKS.OPEN(""+PATH+"D2.XLSX")
OLE.RANGE('D1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.99)'
OLE.RANGE('E1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.95)'
OLE.RANGE('F1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.90)'
OLE.RANGE('G1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.75)'
OLE.RANGE('H1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.50)'
OLE.RANGE('I1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.25)'
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
USE C2.DBF
RE2='B'+ALLTRIM(STR(RECCOUNT()+1))
USE
OLE.WORKBOOKS.OPEN(""+PATH+"C2.XLS")
OLE.ACTIVEWORKBOOK.SAVEAS(""+PATH+"C2.XLSX",51)
OLE.WORKBOOKS.OPEN(""+PATH+"C2.XLSX")
OLE.RANGE('D1').VALUE='=PERCENTILE.INC($B$2:&RE2,0.99)'
OLE.RANGE('E1').VALUE='=PERCENTILE.INC($B$2:&RE2,0.95)'
OLE.RANGE('F1').VALUE='=PERCENTILE.INC($B$2:&RE2,0.90)'
OLE.RANGE('G1').VALUE='=PERCENTILE.INC($B$2:&RE2,0.75)'
OLE.RANGE('H1').VALUE='=PERCENTILE.INC($B$2:&RE2,0.50)'
OLE.RANGE('I1').VALUE='=PERCENTILE.INC($B$2:&RE2,0.25)'
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
USE B2.DBF
RE1='B'+ALLTRIM(STR(RECCOUNT()+1))
USE
OLE.WORKBOOKS.OPEN(""+PATH+"B2.XLS")
OLE.ACTIVEWORKBOOK.SAVEAS(""+PATH+"B2.XLSX",51)
OLE.WORKBOOKS.OPEN(""+PATH+"B2.XLSX")
OLE.RANGE('D1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.99)'
OLE.RANGE('E1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.95)'
OLE.RANGE('F1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.90)'
OLE.RANGE('G1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.75)'
OLE.RANGE('H1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.50)'
OLE.RANGE('I1').VALUE='=PERCENTILE.INC($B$2:&RE1,0.25)'
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
OLE.WORKBOOKS.ADD
OLE.RANGE('A2').VALUE=""+NYS+""
OLE.RANGE('A3').VALUE=""+NYS1+""
OLE.RANGE('A4').VALUE=""+NYS2+""
OLE.RANGE('A5').VALUE=""+NYS3+""
OLE.RANGE('B1').VALUE='99百分位'
OLE.RANGE('C1').VALUE='95百分位'
OLE.RANGE('D1').VALUE='90百分位'
OLE.RANGE('E1').VALUE='75百分位'
OLE.RANGE('F1').VALUE='50百分位'
OLE.RANGE('G1').VALUE='25百分位'
O = OLE.ACTIVESHEET
BB = O.RANGE("A:A","G:G")
WITH BB
.SELECT
.COLUMNWIDTH = 12
.FONT.NAME = "新細明體"
.FONT.FONTSTYLE = "標準"
.FONT.SIZE = 12
ENDWITH
OLE.ACTIVESHEET.RANGE("A:A","G:G").HORIZONTALALIGNMENT=3
OLE.ACTIVEWORKBOOK.SAVEAS(""+PATH+"Z2.XLSX",51)
OLE.WORKBOOKS.OPEN(""+PATH+"A2.XLSX")
OLE.ACTIVESHEET.RANGE("D1:I1").SELECT
OLE.SELECTION.COPY
OLE.WORKBOOKS.OPEN(""+PATH+"Z2.XLSX")
OLE.ACTIVESHEET.RANGE("B2:G2").SELECT
OLE.SELECTION.PASTESPECIAL(-4163,-4142,.F.,.F.)
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
OLE.WORKBOOKS.OPEN(""+PATH+"D2.XLSX")
OLE.ACTIVESHEET.RANGE("D1:I1").SELECT
OLE.SELECTION.COPY
OLE.WORKBOOKS.OPEN(""+PATH+"Z2.XLSX")
OLE.ACTIVESHEET.RANGE("B3:G3").SELECT
OLE.SELECTION.PASTESPECIAL(-4163,-4142,.F.,.F.)
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
OLE.WORKBOOKS.OPEN(""+PATH+"C2.XLSX")
OLE.ACTIVESHEET.RANGE("D1:I1").SELECT
OLE.SELECTION.COPY
OLE.WORKBOOKS.OPEN(""+PATH+"Z2.XLSX")
OLE.ACTIVESHEET.RANGE("B4:G4").SELECT
OLE.SELECTION.PASTESPECIAL(-4163,-4142,.F.,.F.)
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
OLE.WORKBOOKS.OPEN(""+PATH+"B2.XLSX")
OLE.ACTIVESHEET.RANGE("D1:I1").SELECT
OLE.SELECTION.COPY
OLE.WORKBOOKS.OPEN(""+PATH+"Z2.XLSX")
OLE.ACTIVESHEET.RANGE("B5:G5").SELECT
OLE.SELECTION.PASTESPECIAL(-4163,-4142,.F.,.F.)
OLE.ACTIVEWORKBOOK.SAVE
OLE.WORKBOOKS.CLOSE
OLE.QUIT
RELEASE OLE
RETURN |
|
回頂端 |
|
|
CPS0204
註冊時間: 2014-08-24 文章: 441
第 2 樓
|
發表於: 星期日 一月 23, 2022 6:27 pm 文章主題: |
|
|
office版本改用2010看看,相容性高
32位元為佳 |
|
回頂端 |
|
|
sthuang66
註冊時間: 2014-04-27 文章: 173
第 3 樓
|
發表於: 星期日 一月 23, 2022 8:56 pm 文章主題: |
|
|
上面代碼在2010會出現錯誤訊息!!! 2019則不會 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 4 樓
|
發表於: 星期日 一月 23, 2022 10:55 pm 文章主題: |
|
|
版本不同,指令會出錯,
對M$來說,這不是很正常嗎?
VFP 不就也是這樣
XD
順便說一下,
我的VM庫裡有 OFFICE 95 ~ OFFICE 2021
方便測試每一種EXCEL 反應
還有所有的M$ SQL SERVER,
所有的M$ 個人OS,
所有的M$ 標準版SERVER OS
.
.
.
.
.
_________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
215001
註冊時間: 2003-06-11 文章: 389
第 5 樓
|
發表於: 星期一 一月 24, 2022 9:32 am 文章主題: |
|
|
錯誤訊息好像是說下面這一列的問題,檢查一下屬性, 51
OLE.ACTIVEWORKBOOK.SAVEAS(""+PATH+"Z2.XLSX",51) |
|
回頂端 |
|
|
sthuang66
註冊時間: 2014-04-27 文章: 173
第 6 樓
|
發表於: 星期一 一月 24, 2022 11:22 pm 文章主題: |
|
|
謝謝syntech大,215001大 的提醒!!
我試試在報告 |
|
回頂端 |
|
|
sthuang66
註冊時間: 2014-04-27 文章: 173
第 7 樓
|
發表於: 星期五 三月 25, 2022 2:19 am 文章主題: |
|
|
我試完結果是excel版本的問題
我在家裡舊的excel2007發現PERCENTILE.INC函數是無法用的!!只能用PERCENTILE
我函數改成PERCENTILE就可以正常了!!
PERCENTILE.INC在excel 2019或2016則正常
謝謝大家的指導 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|