[原创]在VB中调用EXCEL
我们写程序时,有很多的功能如果都要自己写会非常的麻烦,比如:我们调用打印和打印预览。如果自己写过的人都会明白,调用还不是太麻烦,但你要如果调整你的打印内容在打印时正好是A4纸中的合适位置,这一点可能会非常的麻烦。不知道大家有没有同感。
正因如此,如果调用一些现有的程序来达到一些功能,那么将会变得非常的方便,而EXCEL在这方面具有强大的功能,同时可以说会电脑的人90%都会使用EXCEL,这一点也是它的优势,不必另行特别的培训。
为此如果VB能与EXCEL很好的结合使用,那将是一件非常爽的事。
所以我写这一篇贴子,供大家参考,希望能给大家一定的帮助。
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(App.Path & "\文件名.xls") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("sheel1") '设置活动工作表,sheet1表示表名,可以使用字符型变量代替。
xlSheet.Activate '激活工作表,让它处于前台活动中。
xlBook.RunAutoMacros (xlAutoOpen) '运行自动开启宏Macro1(),在EXCEL中加入以下宏
'Sub auto_open() '这是VBA中的自动打开时运行的宏
' 您要宏自动运行的程序,比如可以call其它的宏,这样VB在打开EXCEL时,使用上面的语句就可以先运行这个宏
'End Sub
xlSheet.Cells.Item(行数,列数) =值 '给EXCEL对象中的表的单元格附值。
xlSheet.Rows("7:7").Select '选定EXCEL表的第7行
xlApp.Selection.Delete shift:=xlUp '删除选定的行
xlSheet.Rows(7).Insert '在第7行处插入一行
ActiveSheet.PageSetup.CenterHeader ="页眉内容" '给页眉附值
xlSheet.Range("f7:h7").Select '选定f7:h7之间的单元格,下面的程序是把它们合并。
Application.CutCopyMode = False
With xlApp.Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
由于功能太多,不能一一列举,如果有自己不会的可以用录制宏的办法,用手功操作一次你要的功能,然后看录下的宏程序,VBA中的宏程序几乎所有的宏在VB中都可以直接使用,关键是对象一定要搞清楚。