当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机一级考试辅导:利用VBA处理表格
发布时间:2010/3/30 16:30:08 来源:城市学习网 编辑:admin

  利用VBA处理表格
  利用VBA处理表格 表格功能是Word 一个非常重要的功能,也是用户经常使用的一项功能,在Word 2000 中,增加了不少新的功能。如果利用VBA 处理表格将使用户的效率有极大的提高。
  12.6.1 向表格单元格插入文字
  下面的代码向活动文档的第一个表格的第一个单元格插入文字。 Cell 方法返回单个的 Cell 对象。Range 属性返回一个 Range 对象。Delete 方法用来删除现有的文字,而 InsertAfter 方法用来插入"Cell 1,1"文字。
  If ActiveDocument.Tables.Count = 1 Then
  With ActiveDocument.Tables ( 1 ) .Cell ( Row:=1,
  Column:=1).Range
  .Delete
  .InsertAfter Text:="Cell 1,1"
  End With

  End If
  12.6.2 在表格中插入文字
  下面的代码在文档的开头插入一张3 行 4 列的表格。For Each...Next 结构用来循环遍历表格中的每个单元格。在 For Each...Next 结构中,InsertAfter 方法用来向表格单元格(Cell 1、 Cell 2 等等)添加文字。
  Set oDoc = ActiveDocument
  Set oTable = oDoc.Tables.Add ( Range:=oDoc.Range
  (Start:=0, End:=0), NumRows:=3, _
  NumColumns:=4)
  iCount = 1
  For Each oCell In oTable.Range.Cells
  oCell.Range.InsertAfter "Cell " & iCount
  iCount = iCount + 1
  Next oCell
  oTable.AutoFormat Format:=wdTableFormatColorful2, _
  ApplyBorders:=True, ApplyFont:=True,
  ApplyColor:=True
  12.6.3 显示每个单元格的内容
  下面的代码返回并显示文档第一张表格第一行中每个单元格中的内容。
  Set oTable = ActiveDocument.Tables(1)
  For Each aCell In oTable.Rows(1).Cells
  Set myRange = ActiveDocument.Range
  (Start:=aCell.Range.Start, _
  End:=aCell.Range.End - 1)
  MsgBox myRange.Text
  Next aCell
  Set oTable = ActiveDocument.Tables(1)
  For Each aCell In oTable.Rows(1).Cells
  Set myRange = aCell.Range
  myRange.MoveEnd Unit:=wdCharacter, Count:=-1
  MsgBox myRange.Text
  Next aCell
  12.6.4 将文本转换为表格
  下面的代码在活动文档的开头插入以制表符分隔的文本,然后将这些文本转换为一张表格。
  Set oRange1 = ActiveDocument.Range(Start:=0, End:=0)
  oRange1.InsertBefore "one" & vbTab & "two" & vbTab &
  "three" & vbCr
  Set oTable1 = oRange1.ConvertToTable(Separator:=Chr
  (9), NumRows:=1, NumColumns:=3)
  12.6.5 返回每个表格单元格的内容
  下面的代码定义一个数组,使该数组的元素个数等于文档第一个表格中的单元格数(假定 Option Base 1)。For Each...Next 结构用来返回每个表格单元格的内容,并将文字指定给相应的数组元素。
  If ActiveDocument.Tables.Count = 1 Then
  Set oTable = ActiveDocument.Tables(1)
  iNumCells = oTable.Range.Cells.Count
  ReDim aCells(iNumCells)
  i = 1
  For Each oCell In oTable.Range.Cells
  Set myRange = oCell.Range
  myRange.MoveEnd Unit:=wdC

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved