Google 網路論壇不再支援新的 Usenet 貼文或訂閱項目,但過往內容仍可供查看。

請問如何比對兩個excel檔案?

瀏覽次數:1 次
跳到第一則未讀訊息

glamorous

未讀,
2007年3月11日 上午10:04:392007/3/11
收件者:
請問我有兩個格式相同,但其格式內容不同的excel檔案,我想用excel VBA寫程式去比對,
請問我該怎麼做,會的人可否給一點提示,謝謝~~~
[m
--
[1;32m※ Origin: [33m元智大學 風之塔 [37m<bbs.yzu.edu.tw> [m
[1;32m※ From : [36m61-63-107-148.nty.dynamic.lsc.net.tw [m
[1;32m※ X-Info: [33m請問如何比對兩個excel檔案? [m
[1;32m※ X-Sign: [36m12V833NjIzox6tFPGyKo [37m(07/03/11 22:04:39 ) [m

㊣阿多巴可安德爾 XD

未讀,
2007年3月12日 凌晨4:52:522007/3/12
收件者:
※ 引述《glamor...@bbs.yzu.edu.tw (glamorous)》之銘言:

> 請問我有兩個格式相同,但其格式內容不同的excel檔案,我想用excel VBA寫程式去比對,
> 請問我該怎麼做,會的人可否給一點提示,謝謝~~~

如果你可以排序就比較容易,不行就很麻煩了。
 

--
[1;34m▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄▄▄ [;1m <telnet://bbs.cs.nctu.edu.tw> [m
[1;34m █▄▄▄▄█ █ ▄▄▄▄▄█ [;30;47mPlayer: [32mGOLDMEMBER [m
[1;36m▄█▄▄▄▄█ ▄▄▄█ █▄▄▄▄▄ [;30;47mFrom: [31mpcnat.ndhu.edu.tw [m
☆ 次世代BS2 ☆ 可申請個人板 [1m150MB 相簿 http://pic.bs2.to 交大資訊人 250MB [m

mat

未讀,
2007年3月12日 上午9:56:282007/3/12
收件者:
※ 引述《GOLDMEM...@bbs.cs.nctu.edu.tw (㊣阿多巴可安德爾 XD)》之銘言:
: ※ 引述《glamor...@bbs.yzu.edu.tw (glamorous)》之銘言:

: > 請問我有兩個格式相同,但其格式內容不同的excel檔案,我想用excel VBA寫程式去比對,
: > 請問我該怎麼做,會的人可否給一點提示,謝謝~~~
: 如果你可以排序就比較容易,不行就很麻煩了。
:  
http://www.vba.com.tw/plog/

這是用Google search 出來的

它裡面有寫了一個增益集~是專門比對兩個sheet裡面不同的資料...

我有稍微試一下他似乎是每個cell不同的就會抓出來
(所以你要用的話就要把你Cell的基準點都設在一起)

假如你要用VBA去寫的話...那你可能得在講清楚點吧.蠻糢糊的

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.246.230

㊣阿多巴可安德爾 XD

未讀,
2007年3月12日 下午2:09:582007/3/12
收件者:
※ 引述《GOLDMEM...@bbs.cs.nctu.edu.tw (㊣阿多巴可安德爾 》之銘言:

> ※ 引述《glamor...@bbs.yzu.edu.tw (glamorous)》之銘言:
> > 請問我有兩個格式相同,但其格式內容不同的excel檔案,我想用excel VBA寫程式去比對,
> > 請問我該怎麼做,會的人可否給一點提示,謝謝~~~
> 如果你可以排序就比較容易,不行就很麻煩了。

其實如果需要保留現有的排列也是可以寫的,辦法如下。

令此兩檔案為f1, f2

1)以下步驟對f1和f2都要做
a)增加一欄,稱為欄n
b)在欄n裡面使用功能填入等差數列
c)從原有欄位中挑選一個為關鍵欄位,排序(不可針對欄n)
2)對兩個檔案各設一個counter, 從1開始,分別稱為y1, y2
3)以f1的y1行比對f2的y2行
a)如果相符,y1累進1, y2累進1,並做必要記號或輸出
b)如果不相符,y2累進1
c)如果y2到達檔案盡頭,y1累進1,並設y2為y1
d)如果y1到達檔案盡頭,結束
4)結束後分別對兩檔案排序,關鍵欄位為兩檔案各自的欄n

---

complexity:
如果兩個檔案完全不一樣,則為n^2...
是一個爛方法。
 
--
[1;37;41mX-URL1: http://www.aviationnow.com/ [30m‧ [31m李登輝 [30m= [33m格達費 [30m= [31m外星人 [30m‧ [1;5;33;47m有廁 [0m
[1;42m [0;34;46m 檢舉匪諜 人人有責 [30m⊙ [34;46m檢舉匪諜 安居樂業 [1;5;33;47m人所 [0m
[1;42m [0;30;46m 檢舉匪諜滲透破壞 人人安居樂業|肅清貪污經濟犯罪 社會繁榮進步 [42m   [0m
[1;42m [0;30;46m 破案獎金三百萬|知情不報判徒刑 [42m [0m
[1;42m [0;30;46m 檢舉要件:請用真實姓名、地址,受理機關絕對保密 [42m [0m
[1;37;41mX-Disclaimer: 李登輝一定是外星人! [31mMk.22 Mod4 5/15/01 [0;30;41mMod3 6/9/98 [0m
--
[1;36m┌───── [33m◆ [37mKKCITY [33m◆ [36m─────┐ [m [1;31;47m■ [;47m [1;34mKKBOX [;32;47m [1;31m可立刻 聽音樂 [1;31;47m ■ [m [m
[1;36m│ [31m bbs.kkcity.com.tw [36m│ [m [31;47m■■ [32m所有想找的歌 [1;33m通通不必等 [35m [;31;47m■■ [m [m
[1;36m└── [34m《 [0;37mFrom:218.160.86.16 [1;34m》 [36m──┘ [m [1;31;47m■ [;31;47m■ [1;31m■ [;4;30;47mhttp://www.kkbox.com.tw [;1;31;47m■ [;31;47m■ [1;31m■ [m
--

glamorous

未讀,
2007年3月12日 上午11:11:122007/3/12
收件者:
首先謝謝大家的回答...

我要比對的excel檔案他們的格式都是相同的,只是格式中的內容不同而已...
比方說學號欄位兩個檔案都一樣,但是每個人的學號不同這樣子~~~
現在比較麻煩的是,這兩個excel檔案要如何比對其內容呢?
用VBA好像只能在同一個sheet之下完成指定的動作,
我想問的是單純的用VBA有辦法去抓兩個excel檔案然後去比對嗎?
謝謝大家~~~

ps:如果不行,可否請大家提供一點意見,給我一點提示我該怎麼做~~~

※ 引述《auxmat...@ptt.cc (mat)》之銘言:


> ※ 引述《GOLDMEM...@bbs.cs.nctu.edu.tw (㊣阿多巴可安德爾 XD)》之銘言:

> : 如果你可以排序就比較容易,不行就很麻煩了。
> :  
> http://www.vba.com.tw/plog/
> 這是用Google search 出來的
> 它裡面有寫了一個增益集~是專門比對兩個sheet裡面不同的資料...
> 我有稍微試一下他似乎是每個cell不同的就會抓出來
> (所以你要用的話就要把你Cell的基準點都設在一起)
> 假如你要用VBA去寫的話...那你可能得在講清楚點吧.蠻糢糊的

[m
--
[1;32m※ Origin: [33m元智大學 風之塔 [37m<bbs.yzu.edu.tw> [m
[1;32m※ From : [36m61-63-107-148.nty.dynamic.lsc.net.tw [m

[1;32m※ X-Info: [33mRe: 請問如何比對兩個excel檔案? [m
[1;32m※ X-Sign: [36m12VARCG8fUwyarQW1MNs [37m(07/03/12 23:11:12 ) [m

㊣阿多巴可安德爾 XD

未讀,
2007年3月13日 清晨7:29:002007/3/13
收件者:
> 用VBA好像只能在同一個sheet之下完成指定的動作,
> 我想問的是單純的用VBA有辦法去抓兩個excel檔案然後去比對嗎?

當然馬可以
隨便開兩個檔案然後執行下面的code

MsgBox Workbooks(2).ActiveSheet.Cells(1, 1)
MsgBox Workbooks(1).ActiveSheet.Cells(1, 1)

cells裡面的數字隨便你改,自己知道哪裡有值就好。


 
--
[1;37;41mX-URL1: http://www.aviationnow.com/ [30m‧ [31m李登輝 [30m= [33m格達費 [30m= [31m外星人 [30m‧ [1;5;33;47m有廁 [0m
[1;42m [0;34;46m 檢舉匪諜 人人有責 [30m⊙ [34;46m檢舉匪諜 安居樂業 [1;5;33;47m人所 [0m
[1;42m [0;30;46m 檢舉匪諜滲透破壞 人人安居樂業|肅清貪污經濟犯罪 社會繁榮進步 [42m   [0m
[1;42m [0;30;46m 破案獎金三百萬|知情不報判徒刑 [42m [0m
[1;42m [0;30;46m 檢舉要件:請用真實姓名、地址,受理機關絕對保密 [42m [0m
[1;37;41mX-Disclaimer: 李登輝一定是外星人! [31mMk.22 Mod4 5/15/01 [0;30;41mMod3 6/9/98 [0m
--

[1;36m┌───── [33m◆ [37mKKCITY [33m◆ [36m─────┐ [m [1;37;46m KK [33m免/費/撥/接 [;36;40m◤ [m
[1;36m│ [31m bbs.kkcity.com.tw [36m│ [;36;46m▏ [1;37m電話(1):449 [;36;40m◤ [1;37m1999 電話(2):4058-6000 [m
[1;36m└── [34m《 [0;37mFrom:218.160.87.213 [1;34m》 [36m──┘ [;36m▏ [1;37m帳號: [33mkkcity [37m密碼: [33mkkcity [m
--

glamorous

未讀,
2007年3月13日 上午11:21:492007/3/13
收件者:
我用你的方法打開兩個excel檔案,執行您提供的程式,
可是只有
MsgBox Workbooks(1).ActiveSheet.Cells(1,1)可以執行,
MsgBox Workbooks(2).ActiveSheet.Cells(1, 1)不能執行,
只要Workbooks(2)就不行,我同時有兩個excel open...
請問我哪裡有問題呢?
謝謝...


※ 引述《journ...@kkcity.com.tw (㊣阿多巴可安德爾 XD)》之銘言:


> > 用VBA好像只能在同一個sheet之下完成指定的動作,
> > 我想問的是單純的用VBA有辦法去抓兩個excel檔案然後去比對嗎?
> 當然馬可以
> 隨便開兩個檔案然後執行下面的code
> MsgBox Workbooks(2).ActiveSheet.Cells(1, 1)
> MsgBox Workbooks(1).ActiveSheet.Cells(1, 1)
> cells裡面的數字隨便你改,自己知道哪裡有值就好。
>  

[m
--
[1;32m※ Origin: [33m元智大學 風之塔 [37m<bbs.yzu.edu.tw> [m
[1;32m※ From : [36m61-63-107-148.nty.dynamic.lsc.net.tw [m
[1;32m※ X-Info: [33mRe: 請問如何比對兩個excel檔案? [m

[1;32m※ X-Sign: [36m12VDGCDAsS8pbUPtOCXQ [37m(07/03/13 23:21:49 ) [m

㊣阿多巴可安德爾 XD

未讀,
2007年3月13日 下午4:49:002007/3/13
收件者:
※ 引述《glamor...@bbs.yzu.edu.tw (glamorous)》之銘言:

> MsgBox Workbooks(2).ActiveSheet.Cells(1, 1)不能執行,
> 只要Workbooks(2)就不行,我同時有兩個excel open...
> 請問我哪裡有問題呢?
> 謝謝...

……那為什麼我可以……

help裡面有給一種寫法

workbooks(workbook_name)

如workbooks("Book1")。你可以改看看。

反正help裡面寫得很詳細,目前開啟的檔案群構成一個集合物件,叫做workbooks,
workbooks當中可以取出任何一本workbook, workbook中目前打開的那一張worksheet
叫做activeWorksheet, activeWorksheet裡面就有cells(row, col) property.
要access到某一個cell, 總是不外乎這種物件接物件再接物件的方法。

因為我很討厭2000以後的office版本,所以這是2000的做法。
你如果用新版就要自己仔細研讀help內容看有沒有改。


 
--
[1;37;41mX-URL1: http://www.aviationnow.com/ [30m‧ [31m李登輝 [30m= [33m格達費 [30m= [31m外星人 [30m‧ [1;5;33;47m有廁 [0m
[1;42m [0;34;46m 檢舉匪諜 人人有責 [30m⊙ [34;46m檢舉匪諜 安居樂業 [1;5;33;47m人所 [0m
[1;42m [0;30;46m 檢舉匪諜滲透破壞 人人安居樂業|肅清貪污經濟犯罪 社會繁榮進步 [42m   [0m
[1;42m [0;30;46m 破案獎金三百萬|知情不報判徒刑 [42m [0m
[1;42m [0;30;46m 檢舉要件:請用真實姓名、地址,受理機關絕對保密 [42m [0m
[1;37;41mX-Disclaimer: 李登輝一定是外星人! [31mMk.22 Mod4 5/15/01 [0;30;41mMod3 6/9/98 [0m
--

[1;36m┌───── [33m◆ [37mKKCITY [33m◆ [36m─────┐ [37;42m KKBOX [;32;40m◤ [1;37m歌名 [33m╱ [32m歌手 [33m╱ [35m歌詞 [33m╱ [36m專輯 [;32;40m◢ [1;37;42m搜尋 [m
[1;36m│ [31m bbs.kkcity.com.tw [36m│ [m [1m [31m★ [33m http://www.kkbox.com.tw [31m★ [m
[1;36m└── [34m《 [0;37mFrom:218.160.87.213 [1;34m》 [36m──┘ [37m [m [1m超過 [36m100 [m家唱片公司合法授權 音樂盡情下載 [m
--

0 則新訊息