Страницы: 1
RSS
Не применятся пользовательский формат к ячейкам (макрос)
 
Здравствуйте.
Есть проблема с применением пользовательского формата ячеек. Не применяется к ячейкам, результат которых получен с помощью макроса. Если макроса нет, то без проблем нужный формат применяется. Во вложении файл пример. Пытаюсь применить к диапазону A8:J8. Может кто подскажет вариант, как решить данную задачу? Может в самом макросе есть возможность указать формат вывода данных?
 
файл не смотрел, но точно знаю что НЕ ВОЗМОЖНО применить формат к ТЕКСТУ
текст он и в Африке текст и в ячейке Excel тоже текст
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
К тексту мне и не надо. Нужно к цифрам. Чтобы было Я8, Я7 и т.д.
 
применяется, вот пример:

Код
Sub CopyDataAddFormat()
  [a5].CurrentRegion.Copy [a14]
  [a14].CurrentRegion.NumberFormat = """Я""General" 
End Sub

Изменено: Ігор Гончаренко - 23.06.2021 21:56:05
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
А как применить? Вставить в имеющийся код? Попробовал, не работает. Там нужно что-то править?
Изменено: vikttur - 23.06.2021 22:09:06
 
читайте название темы:
Цитата
Алексей П написал:
Не применятся пользовательский формат к ячейкам
я вам показал, что применяется
если у вас другой вопрос, то пишите свой вопрос (в следующей теме), а не пишите, что к ячейкам не применяется пользовательский формат.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Не совсем то, что мне надо. Нужно форматировать диапазон A8:J8 и буквы должны остаться, те что с помощью макроса образовались.  
Изменено: Алексей П - 23.06.2021 22:22:29
 
вы можете сформулировать задачу, а можете ничего не формулировать а решать ее самостоятельно
есть еще вариант кто-то это все перечитает, угадает что вам нужно и вывалит решение
я связи между темами не вижу, задачи не понимаю. я не умею решать задачу, которую не понимаю(((
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
я вам показал, что применяется
Спасибо за помощь, но я не программист. Ваш код к сожалению работает некорректно, как его отрегулировать я пока не понял, поэтому пишу сюда в тему, которую создал. Не понял, почему нужно создать новую тему. У меня не форматируется нужный мне диапазон, и тема как раз про это.
 
не нужно ничего создавать - вдруг и так кто-то что-то напишет

ваш код не применяет пользовательский формат, а мой применяет, но понятно, что код работает не корректно)))
для того чтобы код работал корректно, нужно понимать что за задача решается
а я не имею ни малейшего понятия что вы решаете, было бы удивительно если бы написал решение)
но четко понимаю - ваша задача не имеет НИ МАЛЕЙШЕГО ОТНОШЕНИЯ к заявленной в заголовке теме "применить к ячейкам пользовательский формат"
это подсказка тем, кто будет пытаться что-то решить)
название: "не применять к ячейкам никакие пользовательские форматы" - гораздо ближе к сути вашей задаче, чем "применить к ячейкам пользовательский формат"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я пришёл сюда за помощью и при этом описал задачу сумбурно и непонятно. Прошу извинить.
Функция работает следующим образом: красные цифры выводятся в результирующие как "Д", синяя "4" как "Н", остальное всё переносится как есть.
Мне нужно, чтобы полученные цифровые значения (в диапазоне A8:H8), отображались как "Я7, "Я8" и т.д. Буквенные символы должны остаться как есть, к ним применять это не нужно.
Файл пример во вложении.
 
Если применить к обычной ячейке, полученной например в результате простого копирования пользовательский формат следующего вида:
ЯОсновной;[Красный]-Основной;
то отображение получается как мне надо. Но в диапазоне A8:H8 это не срабатывает.
 
Алексей П, из User Defined Function (UDF) нельзя изменить числовой формат ячейки (тот что по ctrl+1)
Код
Public Function ПО_ЦВЕТУ(ByRef Target As Range, ByRef rJ1 As Range, ByRef rK1 As Range) As String
    If Target.Count <> 1 Or Len(Target(1)) = 0 Then Exit Function
'    Application.Volatile True
    Select Case Target.Font.Color
        Case rJ1.Interior.Color
            ПО_ЦВЕТУ = "Д"
        Case rK1.Interior.Color
            ПО_ЦВЕТУ = "Н"
        Case Else
            ПО_ЦВЕТУ = "Я" & Target
    End Select
End Function
Изменено: vladjuha - 24.06.2021 06:20:54
 
Цитата
vladjuha написал:
vladjuha
Спасибо за отклик. Да, это примерно то, что мне нужно получить. Но не должно реагировать на буквы, только на цифры. В отредактированном Вами коде некоторые изначальные функции стали срабатывать не так, как необходимо. Должно работать так:
* По образцу J1, из исходной (A5) при вводе любой цифры в результат (A8) должна возвращаться буква "Д".
* По образцу J2, из исходной (A5) при вводе цифры "4" в результат (A8) должна возвращаться буква "Н".
* Всё остальные значения (цифры и символы) переносятся как есть.
* Формат вывода в результирующие тот, что Вы сделали.

* Ещё хотелось бы сделать так, чтобы любые другие цифры того же цвета, что и "4" (цвет J2) в результат не выводилась, игнорировалась, т.е. пустое поле.  
Изменено: Алексей П - 24.06.2021 10:47:41
 
Алексей П, Вы в названии своей темы написали, что пользовательский формат не применяется, если использовать макрос. Игорь Вам ответил, что применяется и показал, КАК это можно сделать. Вопрос исчерпан. Если у Вас ДРУГОЙ вопрос, то следует создать новую тему, о чём Вам тоже было сказано.
Страницы: 1
Наверх