Здравствуйте!
Создал пользовательскую функцию "Povtor" в VBA Excel (см. файл "Польз_функция.jpg").
Ввёл в диалоговом окне аргумент функции "rng" (диапазон смежных ячеек столбца).
В окне отобразилось правильное значение функции для текущей ячейки "ЛОЖЬ" (см. файл "Польз_функция.jpg").
Однако в таблице Excel в текущей ячейке отображается ошибка типа данных (см. файл "Табл.jpg").
Подскажите, пожалуйста, в чём причина этой ошибки?
С уважением, Александр.
Не знаю, почему происходит ошибка.
Скопируйте код пользовательской функции из VBA сюда на форум, я у себя запущу и посмотрю, в чём может быть проблема.
Здравствуйте!
Прилагаю код пользовательской функции:
Function Povtor(rng As Range)
Dim cell As Range
For Each cell In rng
If WorksheetFunction.CountIf(rng, cell.Value) > 1 Then
cell.Interior.Color = RGB(255, 0, 0) ' Пометить повторы красным цветом
End If
Next cell
If ActiveCell.Offset(0, -1).Interior.Color = RGB(255, 0, 0) Then
Povtor = True
Else
Povtor = False
End If
End Function
С уважением, Александр.
Если пользовательская функция делает какое-то действие, то функция останавливается на этом месте.
Т.е. в пользовательские функции нельзя записывать команды, которые что-то делают.
Конкретно в вашем случае, на этой строке пользовательская функция прерывается и остальные команды функции не выполняются:
cell.Interior.Color = RGB(255, 0, 0)
Обходное решение - вам нужно использовать макрос в виде события: когда будет происходить изменение в диапазоне $AE$2:$AE$9, будет запускаться макрос, который будет делать ваше задание.
Спасибо, буду это учитывать.