Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2010, 22:55   #11
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Т.е. мой вариант не подошел?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 19.05.2010, 23:00   #12
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Спасибо за помощь, но не подошел. Руками добавить тег быстрее получится.
Спасибо.
sergiksergik вне форума Ответить с цитированием
Старый 19.05.2010, 23:56   #13
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

А мой вариант почему не хотите?
motorway вне форума Ответить с цитированием
Старый 20.05.2010, 01:17   #14
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

можно, например, так, см. вложение

Нажмите кнопку "Tag text"
Вложения
Тип файла: zip Add_tag.zip (10.5 Кб, 11 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 20.05.2010, 01:58   #15
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Код:
'Вариант с обработкой ":"
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    Dim v As Variant
    Dim s As String
    Dim i As Long, j As Long
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    For Each r In Target
       s = Replace(CStr(r.Value), vbCrLf, vbLf)
       s = Replace(CStr(r.Value), vbCr, vbLf)
       v = Split(s, vbLf)
       For i = LBound(v) To UBound(v)
           j = InStr(v(i), ":")
           If j > 0 Then
              v(i) = "<b>" & Left(v(i), j) & "</b>" & Mid$(v(i), j + 1)
           End If
       Next i
       r.Value = Join(v, vbLf)
    Next r
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub


'Альтернативный вариант со списком ключевых слов в ранге Keywords
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    Dim v As Variant
    Dim s As String
    Dim i As Long, j As Long
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    ReDim kw([Keywords].Cells.Count)
    i = 0
    For Each r In Range("Keywords")
       kw(i) = Trim$(r.Value)
       i = i + 1
    Next r
    
    For Each r In Target
       s = Replace(CStr(r.Value), vbCrLf, vbLf)
       s = Replace(CStr(r.Value), vbCr, vbLf)
       v = Split(s, vbLf)
       For i = LBound(v) To UBound(v)
           For j = LBound(kw) To UBound(kw)
               s = Replace(v(i), kw(j), "<b>" & kw(j) & "</b>", 1, 1)
               If s <> v(i) Then
                  v(i) = s
                  Exit For
               End If
           Next j
       Next i
       r.Value = Join(v, vbLf)
    Next r
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
Естественно, в книгу (в код листа) вставляйте только один вариант.
Во 2-м варианте предполагается что ":" часть ключевого слова.
Вместо vbLf в Join вам возможно целесообразнее сразу писать "<br>".

Последний раз редактировалось Aent; 20.05.2010 в 02:24.
Aent вне форума Ответить с цитированием
Старый 20.05.2010, 07:17   #16
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от sergiksergik Посмотреть сообщение
Спасибо за помощь, но не подошел. Руками добавить тег быстрее получится.
Т.е. как это руками быстрее?!
Добавление тегов для всего столбца (65000 записей) у меня занимает несколько секунд. Вы руками делаете это быстрее?!
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823

Последний раз редактировалось Serge 007; 20.05.2010 в 09:22.
Serge 007 вне форума Ответить с цитированием
Старый 22.05.2010, 20:09   #17
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
можно, например, так, см. вложение

Нажмите кнопку "Tag text"
Спасибо. Я так понял действует так:
первое слово с : в строке выделяет тегом.
При копировании большого текста,
Пример.
Цитата:
Описание: Фильм строится по принципу линейного разворачивания семи новелл, у каждой из которых есть своя главная героиня, которая максимально целенаправленно занята съемом парня в одном из злачных заведений г. Киева.
часть текста переносится в новую строку и появляются в начале строки теги. Вот чтобы их убрать, было бы то что хотелось бы.
sergiksergik вне форума Ответить с цитированием
Старый 22.05.2010, 20:13   #18
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Serge 007 Посмотреть сообщение
Т.е. как это руками быстрее?!
Добавление тегов для всего столбца (65000 записей) у меня занимает несколько секунд. Вы руками делаете это быстрее?!
Просто в некоторых строчках не нужно будет тег вставлять.
sergiksergik вне форума Ответить с цитированием
Старый 22.05.2010, 20:17   #19
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Aent Посмотреть сообщение

Естественно, в книгу (в код листа) вставляйте только один вариант.
Во 2-м варианте предполагается что ":" часть ключевого слова.
Вместо vbLf в Join вам возможно целесообразнее сразу писать "<br>".
Спасибо за вариант, пока времени нету. Я посмотрю по позже и отпишусь.
PS если можно пожалуйста в excel файле сделайте
sergiksergik вне форума Ответить с цитированием
Старый 22.05.2010, 22:49   #20
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от sergiksergik Посмотреть сообщение
Просто в некоторых строчках не нужно будет тег вставлять.
Это не проблема. Сделайте пример похожий на "то что надо получить" по структуре с указанием где и почему теги вставлять не надо и я напишу формулу под эти условия.
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
облако тегов voldemen JavaScript, Ajax 4 13.06.2010 18:47
DOM разборка тегов Rionty Общие вопросы Delphi 0 14.03.2010 16:56
Сферы тегов Zeraim Свободное общение 5 21.12.2009 19:11
3d облако тегов serega_od PHP 5 20.07.2009 15:37