| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • 利用测试网站检测出你的浏览…

  • Yahoo Toolbar打造安心上网环…

  • 利用google突破各种封锁来下…

  • Yahoo!OCLC Toolbar试用手记

  • 让Google Deskbar实现简体中…

  • QQ跨站漏洞巧利用,强迫他人…

  • 利用Fdisk命令卸载掉还原精灵

  • 轻松几步将美女照片处理为手…

  • PS技巧:利用光晕美化字体

  • 照片处理魔术:点石成金

  • Q
    您现在的位置: 我是IT人 >> 应用学院 >> 办公软件 >> Word >> 教程正文
    利用VBA 处理表格           
    利用VBA 处理表格
    作者:网络 文章来源:转载 点击数: 更新时间:2005-8-17
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:


        表格功能是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:=wdCharacter, Count:=-1
    aCells(i) = myRange.Text
    i = i + 1
    Next oCell
    End If

    12.6.6 将活动文档中的所有表格复制到一篇新文档
        下面的代码将当前文档中的表格复制到新文档中。
        
    If ActiveDocument.Tables.Count >= 1 Then
    Set oDoc1 = ActiveDocument
    Set MyRange = Documents.Add.Range ( Start:=0,
    End:=0)
    For Each oTable In oDoc1.Tables
    oTable.Range.Copy
    With MyRange
    .Paste
    .Collapse Direction:=wdCollapseEnd
    .InsertParagraphAfter
    .Collapse Direction:=wdCollapseEnd
    End With
    Next
    End If

    12.6.7 引用活动元素
        要引用活动段落、表格、域或其他文档元素,可使用 Selection属性返回一个 Selection 对象。通过 Selection 对象,可以访问 所选内容中的所有段落或第一个段落。

    下面的代码为所选内容的第一张表格第一行应用底纹。
    Selection.Tables ( 1 ) .Rows ( 1 ) .Shading.Texture =
    wdTexture10Percent

        如果所选内容中没有表格,则会产生错误。使用 Count 属性可以判定所选内容中是否有表格。下面的代码为所选内容的第一张表格第一行应用底纹。

    If Selection.Tables.Count >= 1 Then
    Selection.Tables(1).Rows(1).Shading.Texture =
    wdTexture10Percent
    Else
    MsgBox "Selection doesn't include a table"
    End If

        下面的代码为所选内容中每张表格的第一行应用底纹。For Each...Next 循环用来循环遍历所选内容中的每个表格。

    If Selection.Tables.Count >= 1 Then
    For Each aTable In Selection.Tables

    aTable.Rows ( 1 ) .Shading.Texture =
    wdTexture10Percent
    Next aTable
    End If

    [1]

    教程录入:小秦    责任编辑:小秦 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |