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

Вход

Регистрация

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

 

= Мир MS Excel/Программно исправить формулу в УФ - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программно исправить формулу в УФ (Макросы/Sub)
Программно исправить формулу в УФ
Mexo Дата: Среда, 01.11.2017, 16:53 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте! Есть ячейка, которая содержит 100 правил Условного форматирования. Во всех формулах УФ нужно заменить ссылку на диапазон (O:O на AB:AB).
Вручную делать долго, поэтому попытался сделать это в VBA:
[vba]
Код

Макрос1()
    With Range("A1").FormatConditions(1)
    .Formula1: Replace = "O:O": Replacement = "AB:AB"
    .FormatConditions(1).StopIfTrue = False
    End With
End Sub
[/vba]
Но при запуске макроса выдает ошибку. Помогите построить код. Заранее благодарю.
 
Ответить
СообщениеЗдравствуйте! Есть ячейка, которая содержит 100 правил Условного форматирования. Во всех формулах УФ нужно заменить ссылку на диапазон (O:O на AB:AB).
Вручную делать долго, поэтому попытался сделать это в VBA:
[vba]
Код

Макрос1()
    With Range("A1").FormatConditions(1)
    .Formula1: Replace = "O:O": Replacement = "AB:AB"
    .FormatConditions(1).StopIfTrue = False
    End With
End Sub
[/vba]
Но при запуске макроса выдает ошибку. Помогите построить код. Заранее благодарю.

Автор - Mexo
Дата добавления - 01.11.2017 в 16:53
Gustav Дата: Среда, 01.11.2017, 17:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2706
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Я бы сказал, что надо как-то так (сам не проверял!):
[vba]
Код
    Dim fc As FormatCondition
    
    For Each fc In Range("A1").FormatConditions
        fc.Formula1 = Replace(fc.Formula1, "O:O", "AB:AB")
    Next fc
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Среда, 01.11.2017, 17:16
 
Ответить
СообщениеЯ бы сказал, что надо как-то так (сам не проверял!):
[vba]
Код
    Dim fc As FormatCondition
    
    For Each fc In Range("A1").FormatConditions
        fc.Formula1 = Replace(fc.Formula1, "O:O", "AB:AB")
    Next fc
[/vba]

Автор - Gustav
Дата добавления - 01.11.2017 в 17:11
nilem Дата: Среда, 01.11.2017, 17:26 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
или попробуйте как-то так
[vba]
Код
Sub Макрос1()
With Range("E3:E12").FormatConditions(1)
    'в E3:E12 меняем формулу УФ с Е на G
    .Modify xlExpression, , Replace(.Formula1, "E", "G")
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеили попробуйте как-то так
[vba]
Код
Sub Макрос1()
With Range("E3:E12").FormatConditions(1)
    'в E3:E12 меняем формулу УФ с Е на G
    .Modify xlExpression, , Replace(.Formula1, "E", "G")
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 01.11.2017 в 17:26
_Boroda_ Дата: Среда, 01.11.2017, 17:30 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
[vba]
Код
Sub tttt()
    For Each fc_ In Range("A1").FormatConditions
            fc_.Modify xlExpression, , Replace(fc_.Formula1, "H", "O")
    Next fc_
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение[vba]
Код
Sub tttt()
    For Each fc_ In Range("A1").FormatConditions
            fc_.Modify xlExpression, , Replace(fc_.Formula1, "H", "O")
    Next fc_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 01.11.2017 в 17:30
Mexo Дата: Среда, 01.11.2017, 22:06 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
В данном примере нужно во всех формулах УФ заменить O:O на AB:AB, но выдает ошибку. Может из-за того что формул много в ячейке?
К сообщению приложен файл: ZZZ.xlsm (34.1 Kb)
 
Ответить
СообщениеВ данном примере нужно во всех формулах УФ заменить O:O на AB:AB, но выдает ошибку. Может из-за того что формул много в ячейке?

Автор - Mexo
Дата добавления - 01.11.2017 в 22:06
InExSu Дата: Среда, 01.11.2017, 22:24 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
выдает ошибку

Попробуйте убрать
[vba]
Код
Option Explicit
[/vba]

А лучше объявите
[vba]
Код
Dim fc_ As FormatCondition
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac

Сообщение отредактировал InExSu - Среда, 01.11.2017, 22:34
 
Ответить
Сообщение
выдает ошибку

Попробуйте убрать
[vba]
Код
Option Explicit
[/vba]

А лучше объявите
[vba]
Код
Dim fc_ As FormatCondition
[/vba]

Автор - InExSu
Дата добавления - 01.11.2017 в 22:24
Mexo Дата: Среда, 01.11.2017, 22:32 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Так сработало, большое спасибо!
 
Ответить
СообщениеТак сработало, большое спасибо!

Автор - Mexo
Дата добавления - 01.11.2017 в 22:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программно исправить формулу в УФ (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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