Свойство Range.Text (Excel)

Возвращает форматированный текст для указанного объекта. Только для чтения, String.

Синтаксис

expression. Текст

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

Замечания

Свойство Text чаще всего используется для диапазона из одной ячейки. Если диапазон содержит несколько ячеек, свойство Text возвращает значение NULL, за исключением случаев, когда все ячейки в диапазоне имеют одинаковое содержимое и форматы.

Если содержимое ячейки больше ширины, доступной для отображения, свойство Text изменит отображаемое значение.

Пример различий свойств

В этом примере показано различие между свойствами Text и Value ячеек, содержащих форматированные числа.

Option Explicit

Public Sub DifferencesBetweenValueAndTextProperties()
    Dim cell As Range
    Set cell = Worksheets("Sheet1").Range("A1")
    cell.Value = 1198.3
    cell.NumberFormat = "$#,##0_);($#,##0)"
    
    MsgBox "'" & cell.Value & "' is the value." 'Returns: "'1198.3' is the value."
    MsgBox "'" & cell.Text & "' is the text."    'Returns: "'$1,198' is the text."
End Sub

Различия в ширине текста

В ячейках, содержащих числовые значения, их отображаемое значение может быть изменено, если столбец недостаточно широк. В приведенном ниже примере показано использование двух столбцов. Первый столбец достаточно широк для отображения значений. Применяется формат, а затем вводится значение, показывающее полное значение. Ширина второго столбца уменьшена таким образом, что при копировании ячеек он слишком узок, что приводит к замечению отображаемого значения.

Public Sub TextWidthDifferences()
    
    Dim wideColumn As Range
    Set wideColumn = Sheet1.Range("B2")
    wideColumn.Value = "Wide Enough Column"
    wideColumn.Columns.AutoFit
    
    Sheet1.Range("B3").Value2 = 123456789
    
    Const CurrencyWith2DecimalsFormat As String = "$#,##0.00"
    Dim currencyCell As Range
    Set currencyCell = Sheet1.Range("B4")
    currencyCell.Value2 = 1234.56
    currencyCell.NumberFormat = CurrencyWith2DecimalsFormat
    
    Dim narrowColumn As Range
    Set narrowColumn = Sheet1.Range("C2")
    narrowColumn.Value = "Reduced Width Column"
    narrowColumn.ColumnWidth = 7.5
    
    Sheet1.Range("B3:B4").AutoFill Destination:=Sheet1.Range("B3:C4"), Type:=XlAutoFillType.xlFillDefault
    Debug.Print Sheet1.Range("C3").Text
    Debug.Print Sheet1.Range("C4").Text
End Sub

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

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