Свойство 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 и обратная связь.