最近一直在做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 Sub 2、VBA是单线程的。
情景:如果要用你想像某些软件那样,用户界面看到在做事,而后台又在运行程序的话了,可以自己找一些API来实现,网上也有这样的例子,不过我做过这样的尝试,实现都因为种种原因失败了,因为在自己做的所谓的Thread里面,不能读取Excel的单元格,也不能引用其它库来调用WebService之类的东东,所以当你想这样做的时候,一定要先试试看是不是行得通,行不通就得想想你的架构是不是要改改了。
解法:最好是不要用多线程。如果非要用,先要有充分的技术准备。
3、找一份好的Excel VBA文档。
情景:怎么知道我的Sheet中有多少行数据?怎么办?去搜?文档很重要哟,特别是像我这样的新手。
解法:网上有很多,下一份你自己认为好的。如果你们要也可以留下Email我发给你们。
暂时写这么多,有心得再来添加。
posted on 2008-01-27 23:14
Robin's Programming World 阅读(4811)
评论(24) 编辑 收藏 所属分类:
其它