=波波日志 > Asp/VBScript > vba编程操作word表格=

[转]vba编程操作word表格

  很多人都知道,用vb操作excel的表格非常简单,但是偏偏项目中碰到了VB操作word表格的部分,google、baidu搜爆了,都没有找到我需要的东西。到是搜索到了很多问这个问题的记录。没办法,索性只有自己去尝试了。下面把一些代码发上来,给需要的朋友一点提示。
  打开一个已经存在的wrod文件(这个文件包含了表格)
+展开
-VBScript
Dim WordApp
Dim Word
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set Word = WordApp.Documents.Open("c:\record.dot")

  知道了就很简单了,下面是选定某一个表格的一个单元格,并修改其内容
+展开
-VBScript
Word.Tables(1).cell(1, 2)="内容"

  VBA中的这些数组元素下标都是从1开始的,比如excel的第一行一列也是ExSheet.Cells(1,1),而不是ExSheet.Cells(0,0),WORD的表格也是这样,不信自己试一下就知道了。所以上面那句话的意思就是对整个word文档中的第一个表格的第一行第二列的内容改变为“内容”。很简单吧?网上有些人在问是不是
Word.Tables(1).cell(1, 2).range.text或者Word.Tables(1).cell(1, 2).text。试一下就发现这2种都不对。
  插入图片其实也很简单,代码如下:
+展开
-VBScript
Word.Tables(1).cell(1, 3).Range.InlineShapes.AddPicture ("c:\photo.jpg")


  说到这,肯定又有人会问怎么在一个word里插入一个表格。其实很简单:
+展开
-VBScript
Call word.Tables.Add(wdBook.application.Selection.Range, 16, 5, 1, 0)  


  如果你的程序里涉及到合并及拆分单元格,那么你可能试一下这段代码:
+展开
-VBScript

dim Table
set Table = wdApp.ActiveDocument.Tables.Add(wdApp.Application.Selection.Range, NumRows:=27, NumColumns _
:=7, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed)

Set mySelection = wdApp.Documents.Application.Selection
mySelection.Cells.Borders(-7).LineStyle = 1
'选中表格的第2行第3列
table.Cell(2, 3).Select
'向下移动6格,第1个参数和第3个是常数
Call wdBook.Application.Selection.MoveDown(5, 6, 1)
'合并
wdBook.Application.Selection.Cells.Merge
'拆分成7行2列
Call wdBook.Application.Selection.Cells.Split(7, 2, True)  


  如果大家碰到了更复杂的程序,用程序生成起来比较麻烦,那么你就可以用模板来实现了?你可以先用word做一个模板,把表格什么的全都先写好,然后保存成模板文件。然后你再用程序加载这个模板,然后往模板里填写数据。这样难度要低一些。不过具体情况具体分析。word这些集合的下标都是从1开始,然后只要找到表格那个集合,然后选取第一个表格就是要操作的表格了(假设你想操作的表格是模板中的第一个表格)。 代码如下:

+展开
-VBScript
dim table

set table=wdApp.ActiveDocument.Tables(1)


  总之微软的那一套东西集成得很不错,其之间任意调用非常方便,大家如果想用VB对WORD做更多的应用,却又不知道怎么实现,我想最好的办法就是录制宏了,你把你想完成的功能操作一遍,然后查看宏,一目了然了吧?呵呵。。。.不过宏代码和真正VB的代码是有点差别的,需要转换一下,多用几次就清楚了。(完)
来源:http://lewclear97.blog.163.com/blog/static/10786380200801242040843/
类别:Asp/VBScript 作者:转载 日期:2011-04-06 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012,桂ICP备05005887号 京公网安备1101055090