Имя: Пароль:
1C
1С v8
Как узнать какая часть текста в excel зачеркнута?
0 geka-geka
 
28.11.11
12:34
Требуется загрузить документ *.xls, в одной ячейке есть зачеркнутый текст и незачеркнутый. Так вот нужно узнать какая часть текста зачеркнута.
На данный момент узнал то, что если весь текст зачеркнут, то ExcelЛист.Cells(Row,Column).Font.Strikethrough = Истина,
если весь текст зачеркнут, то
ExcelЛист.Cells(Row,Column).Font.Strikethrough = Null,
Если ни один символ не зачеркнут, то
ExcelЛист.Cells(Row,Column).Font.Strikethrough = Ложь.
1 smaharbA
 
28.11.11
12:34
.Characters
2 geka-geka
 
28.11.11
12:40
а там что?
3 smaharbA
 
28.11.11
12:49
примерно так (нажми ф1 и будет счастье)


Ячейка = Лист.Cells(Row,Column);
Для Сч = 1 По Ячейка.Characters.Count Цикл
   Если Ячейка.Characters(Сч, 1).Font.Strikethrough = ИСТИНА Тогда
       Прервать;
   КонецЕсли;
Next
Сообщить(Ячейка.Characters(Сч, 1).Font.Strikethrough);
4 geka-geka
 
28.11.11
12:51
Последовательный перебор это убийственно долго. Нет других вариантов?
5 geka-geka
 
28.11.11
13:39
Спасибо.
6 geka-geka
 
28.11.11
13:43
А как применить зачеркивание к ячейке табличного документа? На этот код ругается, говорит не доступна для записи.

ТабличныйДокумент.ТекущаяОбласть.Шрифт.Зачеркивание = Истина;
7 geka-geka
 
02.12.11
10:50
Если у ячейки числовой формат, то ругается на Ячейка.Characters.Count
  Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить  свойство Count класса Characters
Обошел так:
       КоличествоСимволовЯчейки = СтрДлина(ExcelЯчейка.Text);
   Для Сч = 1 По КоличествоСимволовЯчейки Цикл
       Если ExcelЯчейка.Characters(Сч, 1).Font.Strikethrough = ИСТИНА Тогда
           Продолжить;
       Иначе Стр = Стр + Сред(ExcelЯчейка.Text,Сч,1);    
       КонецЕсли;
   КонецЦикла;