Страницы: 1
RSS
Макрос в личной книге макросов который запишет макрос в модуль открытой книги, Макрос который создает другой макрос
 

Доброго дня!
возможно ли это, чтобы один макрос из личной книги макросов сам создавал другой макрос?

Код
Function AverageByColor(DataRange As Range, ColorSample As Range) As Double
    Dim cell As Range, total As Double, n As Long
     
    For Each cell In DataRange
        If IsNumeric(cell) And cell.Interior.Color = ColorSample.Interior.Color Then
            total = total + cell.Value
            n = n + 1
        End If
    Next cell
    AverageByColor = total / n
End Function

есть функция которая будет считать среднее по цвету, каждый раз добавлять ее в используемый файл не вариант (пользователь этого не умеет, научить не вариант), напрямую из личной книги макросов функция не работает (может я что делаю не так). подскажите, есть ли способ написать макрос, добавить кнопку запуска этого макроса на панель задач, и чтобы этот макрос добавлял в текущий файл вышеуказанную функцию? ну или может есть другой вариант решения данной задачи...
Спасибо!
Изменено: mitya528 - 13.02.2024 09:35:22
 
mitya528,
Здравствуйте, Пробовали?
 
MadNike, Идея с надстройкой работает, разобрался, спасибо за наводку!
но как быть если файл перенаправят другому пользователю? у него надстройки нет, функция работать не будет
 
КАК ДОБАВИТЬ КОД ПРОЦЕДУРЫ ПРОГРАММНО, СКОПИРОВАТЬ МОДУЛЬ
Согласие есть продукт при полном непротивлении сторон.

Контакты, благодарности
 
Sanja, Спасибо, но с этим я к сожалению не разобрался. что и куда подставить так и не понял
 
mitya528, здравствуйте
Цитата
mitya528: напрямую из личной книги макросов функция не работает (может я что делаю не так)
перетяните мышкой проект личной книги макросов на проект открытой книги (то же самое, что в References открытой книги поставить галочку на личной книге) — будет создана ссылка. Это можно и программно сделать (кодом).
Соединение проверял на надстройке (а не личной книге) и НЕ с функциями — возможно, у вас не заработает.

P.S.: с вашими навыками VBA лучше ищите/закажите готовый вариант создания кода кодом. Там не так всё просто. Можно просто скопировать все модули из личной книги в открытую.

Изучить
Изменено: Jack Famous - 13.02.2024 10:40:12
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
напрямую из личной книги макросов функция не работает
Код
=PERSONAL.xlsb!AverageByColor(A1:A10;B1)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо! Не знал  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх