[转载]巧用Excel的宏录制功能,查看对应的Interop.Excel 中的操作代码
在很多项目中,我们都会用到导出Excel的功能。通常都会用Interop.Excel 这个DLL .
如果你用对象浏览器去看它的话,你会看到很多的对象属性方法,但是这些都没有说明文字,很少能从字面上理解他的意思,特别是对偶这种英文很差的人来说。更不方便的是,明明某个对象下有很多属性方法,但是你在代码中打“.”的时候,智能提示后面都不会出现方法属性列表,只会有一个GetType(). 郁闷。
我做的项目的用户对生成的Excel文件有很多要求,比如希望某些单元格的背景是什么颜色的,希望某些单元格是什么公式,希望excel在下面滚动条滚动的时候,前三列永远固定住等等。在EXCEL软件里你可能会做,但是在代码中你不知道哪个属性可以设置,哪个方法可以实现这个功能,这时候怎么办 ?我的一个朋友告诉我这个方法,我今天把它拿来分享。
EXCEL菜单里有一个宏录制功能,会把在你的操作过程中EXCEL运行的VB代码录下来。
Tools-->Macro-->Record new macro
这里会出现一个小窗体
不用设置就可以了,点OK,接着就出现一个停止按钮,
等你操作完了点停止就行了。
接着你就作你想实现的效果,比如前三列固定,你可以选择D列,选择菜单window-->freeze panes
这样就操作完了,点击停止。
然后我们就看录下来的VB代码。菜单 Tools-->Macro-->Macros...
选择Edit,或者直接 Tools-->macro-->Visual Basic Editor
打开后就看到我们刚才录下的每一步的代码
Sub Macro3()
'
' Macro3 Macro
' Macro recorded 2006-6-23 by Administrator
Columns("D:D").Select
ActiveWindow.FreezePanes = True
End Sub
原来代码中就是ActiveWindow.FreezePanes 这个东西控制的。
最后在代码里你就可以这样写
excelSheet.Cells(1, 3).Select()
excelApp.ActiveWindow.FreezePanes = True
这样就完成了。其它效果也是一样,比如设置格式,公式,颜色,样式
excelSheet.Range(es.Cells(4, 4), es.Cells(4, 7)).Interior.ColorIndex = 44
怎么样,希望有帮到你。