vb操作word.doc
文本预览下载声明
vb操作word
Private Sub Command1_Click()
Dim appword As Object
Dim worddoc
Set appword = CreateObject(word.application)
Set worddoc = appword.documents.Add(d:\doc1.dot, False, 0)
appword.Visible = True
Dim i As Integer
Debug.Print -----------------------
i = 1
For i = 1 To worddoc.Shapes.Count
If worddoc.Shapes(i).Type = 17 Then
If InStr(worddoc.Shapes(i).TextFrame.TextRange.Text, $add$) 0 Then
worddoc.Shapes(i).TextFrame.TextRange.Text = Text1.Text 赋给各个文本框的值
End If
End If
Next i
End Sub
多人都知道,用vb操作excel的表格非常简单,但是偏偏项目中碰到了VB操作word表格的部分,google、baidu搜爆了,都没有找到我需要的东西。到是搜索到了很多问这个问题的记录。没办法,索性只有自己去尝试了。下面把一些代码发上来,给需要的朋友一点提示。
打开一个已经存在的wrod文件(这个文件包含了表格)
Dim WordApp
Dim Word
Set WordApp = CreateObject(Word.Application)
WordApp.Visible = True
Set Word = WordApp.Documents.Open(c:\record.dot)
知道了就很简单了,下面是选定某一个表格的一个单元格,并修改其内容
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种都不对。
插入图片其实也很简单,代码如下:
说到这,肯定又有人会问怎么在一个word里插入一个表格。其实很简单:
如果你的程序里涉及到合并及拆分单元格,那么你可能试一下这段代码:
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)
如果大家碰到了更复杂的程序,用程序生成起来比较麻烦,那么你就可以用模板来实现了
显示全部