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