Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена символов выделенных желтым и синим цветом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Замена символов выделенных желтым и синим цветом
RipVanWinkel Дата: Воскресенье, 04.06.2017, 21:46 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер, уважаемые знатоки.
Помогите разобраться с непростой проблемой.

В документе находится текст.
Часть символов выделено желтым, часть выделено синим.

Как макросом в области выделенные желтым - вставить "14" - вместо тех символов, что находятся там сейчас?
А в области выделенные синим - вставить "36" - вместо тех символов, что находятся там сейчас.

То есть во всех областях выделенных желтым - должны вставиться значения "14", заменив все те символы, что стоят там в настоящее время.
То же и в областях с синим цветом, но уже с числом "36".

(Запуск макроса - через панель макросов Alt+А8)
Критерий замены - это выделение цветом (желтым и синим).
К сообщению приложен файл: 234-133.doc (19.5 Kb)
 
Ответить
СообщениеДобрый вечер, уважаемые знатоки.
Помогите разобраться с непростой проблемой.

В документе находится текст.
Часть символов выделено желтым, часть выделено синим.

Как макросом в области выделенные желтым - вставить "14" - вместо тех символов, что находятся там сейчас?
А в области выделенные синим - вставить "36" - вместо тех символов, что находятся там сейчас.

То есть во всех областях выделенных желтым - должны вставиться значения "14", заменив все те символы, что стоят там в настоящее время.
То же и в областях с синим цветом, но уже с числом "36".

(Запуск макроса - через панель макросов Alt+А8)
Критерий замены - это выделение цветом (желтым и синим).

Автор - RipVanWinkel
Дата добавления - 04.06.2017 в 21:46
Gustav Дата: Вторник, 06.06.2017, 17:34 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
[vba]
Код
Sub replaceHighlightText()
    
    Dim i           As Long
    Dim currColor   As Long
    Dim prevColor   As Long
    Dim findColor   As Long
    Dim charStart   As Long
    Dim charEnd     As Long
    Dim bmCount     As Long
    Dim bmk         As Bookmark
        
    findColor = 7 '3 - голубой, 7 - желтый
    charStart = 0
    charEnd = 0
    bmCount = 0
        
    'удаление предыдущих закладок
    For Each bmk In ActiveDocument.Bookmarks
        If Left(bmk.Name, 3) = "BM_" Then bmk.Delete
    Next bmk
        
    'поиск начал и концов заливок заданным цветом
    'и установка закладок
    For i = 1 To ActiveDocument.Range.Characters.Count
        currColor = ActiveDocument.Range.Characters(i).HighlightColorIndex
            
        If currColor = findColor Then
            If charStart = 0 Then charStart = i
                
        ElseIf prevColor = findColor Then
            charEnd = i
                
        End If
            
        If charStart > 0 And charEnd > 0 Then
            'добавляем закладку
            bmCount = bmCount + 1
            ActiveDocument.Bookmarks.Add "BM_" & bmCount, ActiveDocument.Range(Start:=charStart - 1, End:=charEnd - 1)
            charStart = 0
            charEnd = 0
        End If
            
        prevColor = currColor
    Next i
        
    'замена символов
    For Each bmk In ActiveDocument.Bookmarks
        If Left(bmk.Name, 3) = "BM_" Then
            bmk.Range.Text = "14" '36 - для голубого, 14 - для желтого
        End If
    Next bmk
        
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[vba]
Код
Sub replaceHighlightText()
    
    Dim i           As Long
    Dim currColor   As Long
    Dim prevColor   As Long
    Dim findColor   As Long
    Dim charStart   As Long
    Dim charEnd     As Long
    Dim bmCount     As Long
    Dim bmk         As Bookmark
        
    findColor = 7 '3 - голубой, 7 - желтый
    charStart = 0
    charEnd = 0
    bmCount = 0
        
    'удаление предыдущих закладок
    For Each bmk In ActiveDocument.Bookmarks
        If Left(bmk.Name, 3) = "BM_" Then bmk.Delete
    Next bmk
        
    'поиск начал и концов заливок заданным цветом
    'и установка закладок
    For i = 1 To ActiveDocument.Range.Characters.Count
        currColor = ActiveDocument.Range.Characters(i).HighlightColorIndex
            
        If currColor = findColor Then
            If charStart = 0 Then charStart = i
                
        ElseIf prevColor = findColor Then
            charEnd = i
                
        End If
            
        If charStart > 0 And charEnd > 0 Then
            'добавляем закладку
            bmCount = bmCount + 1
            ActiveDocument.Bookmarks.Add "BM_" & bmCount, ActiveDocument.Range(Start:=charStart - 1, End:=charEnd - 1)
            charStart = 0
            charEnd = 0
        End If
            
        prevColor = currColor
    Next i
        
    'замена символов
    For Each bmk In ActiveDocument.Bookmarks
        If Left(bmk.Name, 3) = "BM_" Then
            bmk.Range.Text = "14" '36 - для голубого, 14 - для желтого
        End If
    Next bmk
        
End Sub
[/vba]

Автор - Gustav
Дата добавления - 06.06.2017 в 17:34
RipVanWinkel Дата: Вторник, 06.06.2017, 21:18 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, большое спасибо.
Макрос работает.
 
Ответить
СообщениеGustav, большое спасибо.
Макрос работает.

Автор - RipVanWinkel
Дата добавления - 06.06.2017 в 21:18
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!