最近一直在做Primavera的一些整合工作,我們老大最近喜歡上了Excel,所以我們的做法就是采用Excel作為客戶端,服務(wù)端采用Java開發(fā)的WebService來進(jìn)行處理,這是一種新的嘗試,因?yàn)镋xcel有很強(qiáng)大的功能,所以我們可以少做很多事情,其實(shí)這種做法也有一定的好處。
以前有接觸一下VB,但是VBA還是頭一次,說實(shí)話,現(xiàn)在對(duì)VB/VBA都不是很熟悉,很多語法我都還不會(huì),常常連Debug都要找別人幫忙,呵呵。兩周過去了,我居然還搞定了,雖然程序?qū)懙煤軄y,但是還是有不少心得的,所以想在此記錄下來,分享給大家。
1、終級(jí)一招。
情景:假如我們想設(shè)置一下Excel單元格的樣式,如設(shè)置成日期顯示格式,將2008/01/27顯示為1-27,怎么辦?像我這樣的新手肯定是不會(huì)知道該怎么弄的,到底怎么辦呀?急死我了。
解法:采用宏來錄制一個(gè)設(shè)置日期顯示格式的單元格,然后用VBA編輯器打開看看,不就知道了,呵呵。這招是不是很強(qiáng)大?看來如果你不會(huì)宏的錄制,那就得好好學(xué)學(xué)了,超級(jí)簡(jiǎn)單的,例如我錄制的設(shè)置日期的宏顯示的代碼如下:
Sub?Macro1()
'
'?Macro1?Macro
'?宏由?Robin?錄制,時(shí)間:?2008-1-27
????Selection.NumberFormatLocal?=?"m-d;@"
End?Sub2、VBA是單線程的。
情景:如果要用你想像某些軟件那樣,用戶界面看到在做事,而后臺(tái)又在運(yùn)行程序的話了,可以自己找一些API來實(shí)現(xiàn),網(wǎng)上也有這樣的例子,不過我做過這樣的嘗試,實(shí)現(xiàn)都因?yàn)榉N種原因失敗了,因?yàn)樵谧约鹤龅乃^的Thread里面,不能讀取Excel的單元格,也不能引用其它庫(kù)來調(diào)用WebService之類的東東,所以當(dāng)你想這樣做的時(shí)候,一定要先試試看是不是行得通,行不通就得想想你的架構(gòu)是不是要改改了。
解法:最好是不要用多線程。如果非要用,先要有充分的技術(shù)準(zhǔn)備。
3、找一份好的Excel VBA文檔。
情景:怎么知道我的Sheet中有多少行數(shù)據(jù)?怎么辦?去搜?文檔很重要喲,特別是像我這樣的新手。
解法:網(wǎng)上有很多,下一份你自己認(rèn)為好的。如果你們要也可以留下Email我發(fā)給你們。
暫時(shí)寫這么多,有心得再來添加。
posted on 2008-01-27 23:14
Robin's Programming World 閱讀(4841)
評(píng)論(24) 編輯 收藏 所屬分類:
其它