Поделиться через


Метод ReportTable.GetCellText (Project)

Возвращает текстовое значение указанной ячейки в объекте ReportTable .

Синтаксис

выражение. GetCellText (Строка,Кол)

выражение Переменная, представляющая объект ReportTable.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Row Обязательный Long Номер строки в таблице.
Седловина Обязательный Long Номер столбца в таблице.
Row Обязательный INT
Седловина Обязательный INT

Возвращаемое значение

String

Текстовое значение указанной ячейки таблицы.

Замечания

Возвращаемая строка заканчивается символом новой строки ( chr(10), что эквивалентно символу vbCrLf ).

Пример

Пример GetTableText находит все таблицы в активном отчете, получает значение каждой ячейки в таблице, удаляет последний символ каждого значения (символ новой строки), а затем выводит значения ячеек таблицы в окно Интерпретация в VBE. Чтобы использовать макрос GetTableText , создайте проект со значениями, такими как пример, указанный в разделе Объект диаграммы , а затем выполните следующие действия (см. рис. 1):

  1. Создайте отчет вручную. Например, на вкладке ПРОЕКТ ленты в раскрывающемся списке Отчеты выберите Дополнительные отчеты. В диалоговом окне Отчеты выберите Создать на левой панели, в правой области выберите Пусто , а затем выберите Выбрать. В диалоговом окне Имя отчета введитеReport 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 отображается следующий текст. В первых пяти строках показано, как объекты фигур именуются по умолчанию и как создаются значения идентификаторов.

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.