Метод ReportTable.GetCellText (Project)
Возвращает текстовое значение указанной ячейки в объекте ReportTable .
Синтаксис
выражение.
GetCellText
(Строка,Кол)
выражение Переменная, представляющая объект ReportTable.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Row | Обязательный | Long | Номер строки в таблице. |
Седловина | Обязательный | Long | Номер столбца в таблице. |
Row | Обязательный | INT | |
Седловина | Обязательный | INT |
Возвращаемое значение
String
Текстовое значение указанной ячейки таблицы.
Замечания
Возвращаемая строка заканчивается символом новой строки ( chr(10)
, что эквивалентно символу vbCrLf ).
Пример
Пример GetTableText находит все таблицы в активном отчете, получает значение каждой ячейки в таблице, удаляет последний символ каждого значения (символ новой строки), а затем выводит значения ячеек таблицы в окно Интерпретация в VBE. Чтобы использовать макрос GetTableText , создайте проект со значениями, такими как пример, указанный в разделе Объект диаграммы , а затем выполните следующие действия (см. рис. 1):
Создайте отчет вручную. Например, на вкладке ПРОЕКТ ленты в раскрывающемся списке Отчеты выберите Дополнительные отчеты. В диалоговом окне Отчеты выберите Создать на левой панели, в правой области выберите Пусто , а затем выберите Выбрать. В диалоговом окне Имя отчета введитеReport 1.
Добавьте две таблицы в отчет. В разделе СРЕДСТВА ОТЧЕТОВ на вкладке КОНСТРУКТОР ленты используйте команду Таблица в группе Вставка .
Сохраните значения по умолчанию в первой таблице, которая содержит поля Имя, Начало, Окончание и % Завершения суммарной задачи проекта. Выберите первую таблицу, чтобы отобразить область задач Список полей , а затем выберите Фактические затраты и Оставшиеся затраты.
Выберите вторую таблицу. В области задач Список полей измените фильтр на Все задачи, а затем выберите Фактические затраты и Оставшиеся затраты. В таблице выберите и удалите столбцы Пуск и Готово .
Добавьте два текстовых поля в отчет с помощью элемента управления Текстовое поле в группе Вставка на ленте. Например, измените первое текстовое поле, чтобы отобразить сводную задачу проекта, а второе — для отображения сведений о задаче.
Рис. 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 и обратная связь.