ReportTable.GetCellText 方法 (Project)

返回 ReportTable 对象中指定单元格的文本值。

语法

expressionGetCellText (行,科尔)

表达 一个代表“ReportTable”对象的变量。

参数

名称 必需/可选 数据类型 说明
必需 Long 表中的行号。
Col 必需 Long 表中的列号。
必需 INT
Col 必需 INT

返回值

String

指定表单元格的文本值。

备注

返回的字符串以换行符 ( chr(10)结尾,这等效于 vbCrLf 字符) 。

示例

GetTableText 示例查找活动报表上的所有表,获取表中每个单元格的值,删除每个值 (换行符) 的最后一个字符,然后将表单元格值打印到 VBE 中的“即时”窗口中。 若要使用 GetTableText 宏,请使用 图表对象 主题中指定的值(例如示例)创建项目,然后执行以下步骤 (见图 1) :

  1. 手动创建报表。 例如,在功能区的“ 项目 ”选项卡上的“ 报表” 下拉列表中,选择“ 更多报表”。 在“ 报表 ”对话框中,在左窗格中选择“ 新建 ”,在右窗格中选择“ 空白 ”,然后选择“ 选择”。 在“ 报表名称 ”对话框中,键入“报表 1”。

  2. 向报表添加两个表。 在功能区的“设计”选项卡上的“报表工具”下,使用“插入”组中的“表”命令。

  3. 保留第一个表中的默认值,其中包括项目摘要任务的“名称”、“开始”、“完成时间”和“完成百分比”字段。 选择第一个表以显示“ 字段列表 ”任务窗格,然后选择“ 实际成本 ”和“ 剩余成本”。

  4. 选择第二个表。 在 “字段列表 ”任务窗格中,将 “筛选” 更改为“ 所有任务”,然后选择“ 实际成本 ”和“ 剩余成本”。 在表中,选择并删除 “开始” 列和 “完成” 列。

  5. 通过使用功能区上“插入”组中的“文本框”控件,向报表添加两个文本框。 例如,编辑第一个文本框以显示“项目摘要任务”,编辑第二个文本框以显示“任务”信息。

图 1. 示例报表包含两个表和三个文本框

具有两个表格和三个文本框的报表

Sub GetTableText()
    Dim theReport As Report
    Dim shp As shape
    Dim theReportTable As ReportTable
    Dim reportName As String
    Dim row As Integer, col As Integer, i As Integer
    Dim output As String
    
    reportName = "Report 1"
    
    For i = 1 To ActiveProject.Reports(reportName).Shapes.Count
        Set shp = ActiveProject.Reports(reportName).Shapes(i)
        Debug.Print shp.Name & "; ID = " & shp.ID
    Next i
    
    For Each shp In ActiveProject.Reports(reportName).Shapes
        If shp.HasTable Then
            Debug.Print vbCrLf & "Table name: " & shp.Name
            
            For row = 1 To shp.Table.RowsCount
                output = vbTab
                
                For col = 1 To shp.Table.ColumnsCount
                    output = output & shp.Table.GetCellText(row, col)
                    output = left(output, Len(output) - 1) & vbTab
                Next col
                
                Debug.Print output
            Next row
        End If
    Next shp
End Sub

运行 GetTableText 宏时,VBE 中的“即时”窗口将显示以下文本。 前五行显示默认情况下如何命名形状对象以及如何创建 ID 值。

TextBox 1; ID = 2
Table 2; ID = 3
Table 3; ID = 4
TextBox 4; ID = 5
TextBox 5; ID = 6

Table name: Table 2
    Name    Start   Finish  % Complete  Actual Cost Remaining Cost  
    TestShapes  Mon 5/14/12 Tue 5/31/12 58% $1,595.00   $2,125.00   

Table name: Table 3
    Name    % Complete  Actual Cost Remaining Cost  
    T1  100%    $0.00   $0.00   
    T2  71% $1,280.00   $640.00 
    T3  44% $315.00 $765.00 
    T4  0%  $0.00   $720.00

另请参阅

ReportTable 对象ID 属性

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。