Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Владимир, большое спасибо вам. Точно там оформление стилями. Проблема решена до конца. У меня это первый опыт обращения в форуме. Поражен оперативностью и знаниями экспертов. Всем кто принимал участие в обсуждении спасибо.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Уважаемый sokol92. Я согласен, что моя проблема решена. Да забыл поблагодарить Андрея. Благодарю сейчас. Очень эффективное решения, я его опробовал. Работает великолепно. У меня просто сопутствующий вопрос, что не так с моими входными данными. Я свою функцию тоже переписал до совета Владимира. Взял сгенерировал строку Lorem длиной 1500 символов. Функция отработала мгновенно, меньше секунды. Взял реальные данные, функция работала 45 секунд. Попробовал сейчас по функции Владимира. Отработала мгновенно, но вылезли какие-то лишние пробелы и переводы строки. Смотришь ячейку, вроде все нормально. Я делал очистку формата. Не помогает, вылезает мусор. Просто интересно, откуда берется мусор.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Владимир, я в восхищении. Век живи, век учись. Гениальное решение. Я так и думал, что форматирование должно где-то храниться. У меня видно проблема с входными данными, похоже их откуда-то скопировали. Когда я использую вашу функцию, вылазит какой-то мусор, лишние пробелы и переводы строк. Прилагаю файл с примером.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Владимир, спасибо. Буду пробовать реализовать ваши советы.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Владимир, к сожалению на реальных данных виснет. На примере одной ячейки видно, что быстрее стало работать, но все равно медленно. Может подскажете другой путь реализации задачи?
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Владимир, спасибо. Установка текстового формата вроде работает. Сейчас проверю на реальных данных. А какой алгоритм оптимальный. Как найти подстроку полужирным шрифтом, не перебирая по символам?
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Прикладываю файл с функцией. Ячейку с формулой выделил желтым.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Нет замена + на & и mid() на переменную не помогло. Строка из 1000 символов обрабатывается несколько минут.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Да в Excel. Потом идет выгрузка в xml файл
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Пробовал и в макросе, бесполезно. Не пойму, почему так медленно обрабатывает. Обычный цикл перебора строки по символам.
Обернуть полужирный текст в ячейке тегом strong, Нужно найти в ячейке текст, выденный полужирным шрифтом и заключить его в тег strong
 
Написал функцию по вставке тега <strong> в строку, если текст выделен полужирным.

Public Function StrongTeg(rng As Range) As String

   Dim vStr As String, vTempStr As String
   Dim j As Integer, vLen As Integer
   Dim vBoldState As Boolean
       
   vStr = ""
   vTempStr = rng.Text
   vBoldState = False
   vLen = rng.Characters.Count
   For j = 1 To vLen
       If Not rng.Characters(j, 1).Font.Bold Then 'обычный
           If Not vBoldState Then 'был обычный шрифт и остался обычный
               vStr = vStr + Mid(vTempStr, j, 1)
           Else 'был полужирный стал обычный, вставляем </strong>
               vStr = vStr + "</strong>" + Mid(vTempStr, j, 1)
               vBoldState = False
           End If
       Else 'полужирный
           If Not vBoldState Then 'был обычный стал полужирный, вставляем <strong>
               vStr = vStr + "<strong>" + Mid(vTempStr, j, 1)
               vBoldState = True
           Else 'был и остался полужирный
               vStr = vStr + Mid(vTempStr, j, 1)
           End If
       End If
   Next j
   If vBoldState Then vStr = vStr + "</strong>"
   StrongTeg = vStr
   
End Function

Очень долго считает. Если вычислять для большого количества ячеек, то вообще виснет.
Что неправильно в функции? Есть ли другой, более быстрый способ для заключения полужирного текста в тег strong?
Страницы: 1
Наверх