注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

你所要的信息,请收入囊中。

 
 
 

日志

 
 

vb 操作excel大全  

2013-09-10 18:40:50|  分类: 计算机 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
vb 操作excel大全

如何操作excel文件  

  全面控制   excel  

  首先创建   excel   对象,使用comobj:  

  dim   excelid   as   excel.application  

  set   excelid   as   new   excel.application  

  1)   显示当前窗口:  

  excelid.visible   :=   true;  

  2)   更改   excel   标题栏:  

  excelid.caption   :=   应用程序调用   microsoft   excel;  

  3)   添加新工作簿:  

      excelid.workbooks.add;  

  4)   打开已存在的工作簿:  

      excelid.workbooks.open(   c:\excel\demo.xls   );  

  5)   设置第2个工作表为活动工作表:  

      excelid.worksheets[2].activate;      

    或   excelid.worksheets[   sheet2   ].activate;  

  6)   给单元格赋值:  

    excelid.cells[1,4].value   :=   第一行第四列;  

  7)   设置指定列的宽度,以第一列为例:  

    excelid.activesheet.columns[1].columnswidth   :=   5;  

  8)   设置指定行的高度,以第二行为例:  

      excelid.activesheet.rows[2].rowheight   :=   1/0.035;   //   1厘米  

  9)   在第8行之前插入分页符:  

      excelid.worksheets[1].rows[8].pagebreak   :=   1;  

  10)   在第8列之前删除分页符:  

      excelid.activesheet.columns[4].pagebreak   :=   0;  

  11)   指定边框线宽度:  

    excelid.activesheet.range[   b3:d4   ].borders[2].weight   :=   3;  

        1-左         2-右       3-顶         4-底       5-斜(   \   )           6-斜(   /   )  

  12)   清除第一行第四列单元格公式:  

    excelid.activesheet.cells[1,4].clearcontents;  

  13)   设置第一行字体属性:  

  excelid.activesheet.rows[1].font.name   :=   隶书;  

  excelid.activesheet.rows[1].font.color     :=   clblue;  

  excelid.activesheet.rows[1].font.bold       :=   true;  

  excelid.activesheet.rows[1].font.underline   :=   true;  

  14)   进行页面设置:  

      a.页眉:  

          excelid.activesheet.pagesetup.centerheader   :=   报表演示;  

      b.页脚:  

          excelid.activesheet.pagesetup.centerfooter   :=   第&p页;  

      c.页眉到顶端边距2cm:  

          excelid.activesheet.pagesetup.headermargin   :=   2/0.035;  

      d.页脚到底端边距3cm:  

          excelid.activesheet.pagesetup.headermargin   :=   3/0.035;  

      e.顶边距2cm:  

          excelid.activesheet.pagesetup.margin   :=   2/0.035;  

      f.底边距2cm:  

          excelid.activesheet.pagesetup.bottommargin   :=   2/0.035;  

      g.左边距2cm:  

          excelid.activesheet.pagesetup.leftmargin   :=   2/0.035;  

      h.右边距2cm:  

          excelid.activesheet.pagesetup.rightmargin   :=   2/0.035;  

      i.页面水平居中:  

          excelid.activesheet.pagesetup.centerhorizontally   :=   2/0.035;  

      j.页面垂直居中:  

          excelid.activesheet.pagesetup.centervertically   :=   2/0.035;  

      k.打印单元格网线:  

          excelid.activesheet.pagesetup.printgridlines   :=   true;  

  15)   拷贝操作:  

      a.拷贝整个工作表:  

          excelid.activesheet.used.range.copy;  

      b.拷贝指定区域:  

          excelid.activesheet.range[   a1:e2   ].copy;  

      c.从a1位置开始粘贴:  

          excelid.activesheet.range.[   a1   ].pastespecial;  

      d.从文件尾部开始粘贴:  

          excelid.activesheet.range.pastespecial;  

  16)   插入一行或一列:  

        a.   excelid.activesheet.rows[2].insert;  

        b.   excelid.activesheet.columns[1].insert;  

  17)   删除一行或一列:  

      a.   excelid.activesheet.rows[2].delete;  

      b.   excelid.activesheet.columns[1].delete;  

  18)   打印预览工作表:  

      excelid.activesheet.printpreview;  

  19)   打印输出工作表:  

      excelid.activesheet.printout;  

  20)   工作表保存:  

    if   not   excelid.activeworkbook.saved   then  

        excelid.activesheet.printpreview  

        end   if  

  21)   工作表另存为:  

      excelid.saveas(   c:\excel\demo1.xls   );  

  22)   放弃存盘:  

    excelid.activeworkbook.saved   :=   true;  

  23)   关闭工作簿:  

    excelid.workbooks.close;  

  24)   退出   excel:  

  excelid.quit;  

  25)   设置工作表密码:  

  excelid.activesheet.protect   "123",   drawingobjects:=true,   contents:=true,   scenarios:=true  

  26)     excel的显示方式为最大化  

  excelid.application.windowstate   =   xlmaximized          

  27)   工作薄显示方式为最大化  

  excelid.activewindow.windowstate   =   xlmaximized      

  28)   设置打开默认工作薄数量  

  excelid.sheetsinnewworkbook   =   3  

  29)   关闭时是否提示保存(true   保存;false   不保存)  

  excelid.displayalerts   =   false      

  30)   设置拆分窗口,及固定行位置  

  excelid.activewindow.splitrow   =   1  

  excelid.activewindow.freezepanes   =   true  

  31)   设置打印时固定打印内容  

  excelid.activesheet.pagesetup.printtitlerows   =   "$1:$1"      

  32)   设置打印标题  

  excelid.activesheet.pagesetup.printtitlecolumns   =   ""        

  33)   设置显示方式(分页方式显示)  

  excelid.activewindow.view   =   xlpagebreakpreview      

  34)   设置显示比例  

  excelid.activewindow.zoom   =   100                                    

  35)   让excel   响应   dde   请求  

  ex.application.ignoreremoterequests   =   false  

   

  用vb操作excel  

  private   sub   command3_click()  

  on   error   goto   err1  

          dim   i   as   long  

          dim   j   as   long  

          dim   objexl   as   excel.application       声明对象变量  

          me.mousepointer   =   11                         改变鼠标样式  

          set   objexl   =   new   excel.application   初始化对象变量  

          objexl.sheetsinnewworkbook   =   1     将新建的工作薄数量设为1  

          objexl.workbooks.add                     增加一个工作薄  

          objexl.sheets(objexl.sheets.count).name   =   "book1"     修改工作薄名称    

          objexl.sheets.add   ,   objexl.sheets("book1")   ‘增加第二个工作薄在第一个之后  

          objexl.sheets(objexl.sheets.count).name   =   "book2"    

          objexl.sheets.add   ,   objexl.sheets("book2")   ‘增加第三个工作薄在第二个之后  

  objexl.sheets(objexl.sheets.count).name   =   "book3"    

   

  objexl.sheets("book1").select           选中工作薄<book1>  

          for   i   =   1   to   50                                       循环写入数据  

                  for   j   =   1   to   5  

  if   i   =   1   then  

                      objexl.selection.numberformatlocal   =   "@"     设置格式为文本    

  objexl.cells(i,   j)   =   "   e   "   &   i   &   j  

                          else  

                                objexl.cells(i,   j)   =   i   &   j  

                          end   if  

                  next  

          next  

   

        objexl.rows("1:1").select                   选中第一行  

        objexl.selection.font.bold   =   true       设为粗体  

        objexl.selection.font.size   =   24           设置字体大小  

        objexl.cells.entirecolumn.autofit     自动调整列宽    

  objexl.activewindow.splitrow   =   1     拆分第一行  

        objexl.activewindow.   splitcolumn   =   0     拆分列  

  objexl.activewindow.freezepanes   =   true       固定拆分       objexl.activesheet.pagesetup.printtitlerows   =   "$1:$1"     设置打印固定行  

  objexl.activesheet.pagesetup.printtitlecolumns   =   ""         打印标题         objexl.activesheet.pagesetup.rightfooter   =   "打印时间:   "   &   _  

                                        format(now,   "yyyy年mm月dd日   hh:mm:ss")  

        objexl.activewindow.view   =   xlpagebreakpreview         设置显示方式  

        objexl.activewindow.zoom   =   100                                   设置显示大小  

          给工作表加密码  

  objexl.activesheet.protect   "123",   drawingobjects:=true,     _  

  contents:=true,   scenarios:=true  

        objexl.application.ignoreremoterequests   =   false  

        objexl.visible   =   true                                               使excel可见  

        objexl.application.windowstate   =   xlmaximized   excel的显示方式为最大化  

        objexl.activewindow.windowstate   =   xlmaximized   工作薄显示方式为最大化  

        objexl.sheetsinnewworkbook   =   3                       将默认新工作薄数量改回3个    

        set   objexl   =   nothing         清除对象  

        me.mousepointer   =   0       修改鼠标  

  exit   sub  

  err1:  

  objexl.sheetsinnewworkbook   =   3  

  objexl.displayalerts   =   false     关闭时不提示保存  

  objexl.quit                                 关闭excel  

  objexl.displayalerts   =   true       关闭时提示保存  

  set   objexl   =   nothing  

  me.mousepointer   =   0  

  end   sub  

   

 

发表者:wangdeshui

利用   word   打印的例子  

   

  dim   oword   as   word.application  

  dim   odoc   as   word.document  

  dim   orange   as   word.range  

  dim   stemp,   sheadline,   stitle   as   string  

  dim   i   as   integer  

  dim   oldrec   as   long  

   

  on   error   goto   eh  

  if   adc_card.recordset.recordcount   =   0   then   msgbox   "没有可打印的数据!",   vbcritical:   exit   sub  

  oldrec   =   adc_card.recordset.absoluteposition  

   

    create   an   instance   of   word  

  set   oword   =   createobject("word.application")  

    add   a   new,   blank   document  

  set   odoc   =   oword.documents.add  

  odoc.pagesetup.orientation   =   wdorientlandscape  

   

    get   the   current   documents   range   object  

  set   orange   =   odoc.range  

  stitle   =   format(dtpicker1.value,   "yyyy年mm月dd日")   &   combo1   &   iif(len(text4),   "",   "")   &   "消费记录明细表"   &   vbcrlf   &   vbcrlf  

  orange.text   =   stitle  

   

  orange.setrange   len(stitle)   +   1,   len(stitle)   +   1  

  adc_card.recordset.movefirst  

  stemp   =   adc_card.recordset.getstring(adclipstring,   -1,   vbtab)  

  for   i   =   0   to   datagrid1.columns.count   -   1  

  sheadline   =   sheadline   &   datagrid1.columns(i).caption   &   vbtab  

  next   i  

  sheadline   =   left(sheadline,   len(sheadline)   -   1)   &   vbcrlf  

   

   

    insert   a   heading   on   the   string  

  stemp   =   sheadline   &   stemp  

    insert   the   data   into   the   word   document  

  orange.text   =   stemp  

    convert   the   text   to   a   table   and   format   the   table  

  orange.converttotable   vbtab,   ,   ,   ,   36  

   

  orange.setrange   orange.end   +   1,   orange.end   +   1  

  orange.text   =   vbcrlf   &   "制表人:"   &   adminname   &   vbtab   &   vbtab   _  

          &   "制表日期:"   &   format(date,   "long   date")  

  orange.paragraphformat.alignment   =   wdalignparagraphright  

   

  odoc.tables(1).select  

  with   oword.selection  

  .cells.heightrule   =   wdrowheightatleast  

  .cells.height   =   16  

  .cells.verticalalignment   =   wdcellalignverticalcenter  

  end   with  

   

  odoc.tables(1).columns(2).width   =   40  

  odoc.tables(1).columns(8).width   =   odoc.tables(1).columns(8).width   +   50  

  for   i   =   2   to   adc_card.recordset.recordcount   +   1  

  odoc.tables(1).cell(i,   4).select  

  oword.selection.text   =   format(val(oword.selection.text),   "currency")  

  next   i  

  odoc.tables(1).cell(1,   4).select  

  oword.selection.selectcolumn  

  oword.selection.paragraphformat.alignment   =   wdalignparagraphright  

  odoc.tables(1).cell(1,   4).select  

  oword.selection.paragraphformat.alignment   =   wdalignparagraphleft  

  oword.selection.homekey   unit:=wdstory  

   

  formating   the   title  

  orange.setrange   0,   len(stitle)   -   4  

  with   orange  

  .font.name   =   "宋体"  

  .font.size   =   16  

  .font.bold   =   true  

  .paragraphformat.alignment   =   wdalignparagraphcenter  

  end   with  

   

    show   word   to   the   user  

  oword.visible   =   true  

   

  if   oldrec   >=   1   then  

  adc_card.recordset.movefirst  

  adc_card.recordset.move   oldrec   -   1  

  end   if  

   

  checkbox   on   form   says   "立即打印"  

  if   check1   then   oword.printout  

 

发表者:alian1007

 

  datagrid   导出到   excel  

   

   

  private   sub   command1_click()  

  dim   i   as   integer  

  dim   j   as   integer  

  dim   xlapp   as   new   excel.application  

  dim   xlbook   as   new   excel.workbook  

  dim   xlsheet   as   new   excel.worksheet  

  set   xlapp   =   createobject("excel.application")  

  xlapp.visible   =   true  

  set   xlbook   =   xlapp.workbooks.add  

  on   error   resume   next  

  set   xlbook   =   xlapp.workbooks.open("d:\text2.xls")  

  set   xlsheet   =   xlbook.worksheets(1)  

  for   j   =   0   to   mgrid.columns.count   -   1  

  xlsheet.cells(1,   j   +   1)   =   mgrid.columns.item(j).caption  

  next   j  

  xlsheet.cells(6,   1)   =   "i"  

  adodc1.recordset.movefirst  

  for   i   =   0   to   adodc1.recordset.recordcount   -   1  

  mgrid.row   =   i  

  for   j   =   0   to   mgrid.columns.count   -   1  

  mgrid.col   =   j  

  msgbox   datagrid1.text  

   

  if   isnull(mgrid.text)   =   false   then  

  xlsheet.cells(i   +   2,   j   +   1)   =   mgrid.text  

  end   if  

  next   j  

  next   i  

   

  end   sub

  评论这张
 
阅读(71)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017