Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Оформлении текста в ячейках MS Excell

40K
23 июня 2008 года
Kostya_юзверь
1 / / 23.06.2008
Знатоки, подскажите, каким образом (в каких объектах), хранится информация о оформлении текста в ячейках MS Excell 2000.
Что имеется в виду: в одной ячейке имеется текст, одно из слов которого выделенно жирным шрифтом или цветом, где Excell хранит инф-ю о выделенном слове?
275
23 июня 2008 года
pashulka
985 / / 19.09.2004
В отличии от Word, Excel не делит текст в ячейке на слова (words), поэтому, в этом приложении Вы вряд ли найдёте информацию о целом слове. Однако, Вы можете получить нужную информацию о каждом символе (см.пример#1) в нужной ячейке и проанализировать полученный результат или разбить текст самостоятельно, например, используя функцию Split (см.пример#2), которая, кстати, и появилась в Excel 2000.

Пример#1

Код:
With ThisWorkbook.Worksheets(1).Cells(1, 1) 'Cells(1)
     'Укажите нужную рабочую книгу, рабочий лист и ячейку
     If VarType(.Value) = vbString Then 'Or TypeName()
        For iCount = 1 To Len(.Value)
            With .Characters(iCount, 1).Font
                 iFontName = .Name
                 iFontSize = .Size
                 iFontBold = .Bold
                 iFontColor = .Color
                 iFontColorIndex = .ColorIndex
                 'и т.д.
            End With
            'Узнать интересующий нас символ можно с помощью
            'функции Mid(String, iCount, 1), или же
            'используя об'ект Characters(iCount, 1).Text
        Next
     Else
        MsgBox "Такая ячейка нас не интересует", , ""
        ' Потому, что :
        ' - если эта ячейка пуста, то дальнейшие
        ' действия просто не имеют смысла,
        ' - а если ячейка содержит числовое значение,
        ' то использование Characters приведёт к
        ' возникновению ошибки.
     End If
End With


Пример#2

Код:
With ThisWorkbook.Worksheets(1).[A1] 'Range("A1")
     If Application.IsText(.Value) = True Then 'Or TypeName()
        iStart = 1
        For Each iWord In Split(.Value)
            If .Characters(iStart, Len(iWord)).Font.Bold = True Then _
            MsgBox "Это слово целиком выделено жирным шрифтом ", , iWord: _
            'Если нас интересует только одно слово, то Exit For
            iStart = iStart + 1 + Len(iWord)
        Next
     End If
End With


Примечание : Под словом подразумевается любое сочетание символов, разделённых пробелом.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог