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

Вход

Регистрация

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

 

= Мир MS Excel/правильное копирование функции UDF в книгу макросов - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » правильное копирование функции UDF в книгу макросов (Макросы/Sub)
правильное копирование функции UDF в книгу макросов
Мурад Дата: Вторник, 25.10.2016, 09:50 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 412
Репутация: 17 ±
Замечаний: 0% ±

Excel 2007
Доброе утро! Ребята, подскажите, в чем может быть проблема? (понятно, что в кривизне моих рук)))
Вставляю коды из темы СцепитьЕсли() в свою личную книгу макросов, но в ячейке выходит ошибка #ИМЯ?
Я использовал вначале код Alex_ST, вышла ошибка. Я этот код удалил и вставил уже код Serge_007. Может, не в личную книгу макросов надо вставлять код?
$IMAGE2$
К сообщению приложен файл: 9346377.xlsx(10Kb)


Сообщение отредактировал Мурад - Вторник, 25.10.2016, 10:01
 
Ответить
СообщениеДоброе утро! Ребята, подскажите, в чем может быть проблема? (понятно, что в кривизне моих рук)))
Вставляю коды из темы СцепитьЕсли() в свою личную книгу макросов, но в ячейке выходит ошибка #ИМЯ?
Я использовал вначале код Alex_ST, вышла ошибка. Я этот код удалил и вставил уже код Serge_007. Может, не в личную книгу макросов надо вставлять код?
$IMAGE2$

Автор - Мурад
Дата добавления - 25.10.2016 в 09:50
_Boroda_ Дата: Вторник, 25.10.2016, 09:55 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Блин! 400 сообщений (кстати, поздравляю!!!), а темы так и не научились называть. Переименовывайте.
И поподробнее опишите
как добавляете в книгу макросов, куда добавляете
как пишете формулу на листе

Только сначала переименуйте, а потом подробности


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеБлин! 400 сообщений (кстати, поздравляю!!!), а темы так и не научились называть. Переименовывайте.
И поподробнее опишите
как добавляете в книгу макросов, куда добавляете
как пишете формулу на листе

Только сначала переименуйте, а потом подробности

Автор - _Boroda_
Дата добавления - 25.10.2016 в 09:55
Мурад Дата: Вторник, 25.10.2016, 10:12 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 412
Репутация: 17 ±
Замечаний: 0% ±

Excel 2007
Спасибо за поздравления. Ваш сайт самый лучший :)


Сообщение отредактировал Мурад - Вторник, 25.10.2016, 10:15
 
Ответить
СообщениеСпасибо за поздравления. Ваш сайт самый лучший :)

Автор - Мурад
Дата добавления - 25.10.2016 в 10:12
_Boroda_ Дата: Вторник, 25.10.2016, 10:18 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
как пишете формулу на листе

Вот так?
[vba]
Код
=PERSONAL.XLSB!сцепитьесли(E2:E7)
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
как пишете формулу на листе

Вот так?
[vba]
Код
=PERSONAL.XLSB!сцепитьесли(E2:E7)
[/vba]

Автор - _Boroda_
Дата добавления - 25.10.2016 в 10:18
Мурад Дата: Вторник, 25.10.2016, 10:24 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 412
Репутация: 17 ±
Замечаний: 0% ±

Excel 2007
Нет, пишу сразу
Код
=сцепитьесли($A$1:$A$9;D1;$B$1:$B$9;";")
 
Ответить
СообщениеНет, пишу сразу
Код
=сцепитьесли($A$1:$A$9;D1;$B$1:$B$9;";")

Автор - Мурад
Дата добавления - 25.10.2016 в 10:24
_Boroda_ Дата: Вторник, 25.10.2016, 10:27 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Нет, пишу сразу

И Excel ищет макрос СЦЕПИТЬЕСЛИ в текущей книге. Не находит. И ругается.

В Excel cлева от строки формул есть кнопочка fx, нажмите на нее, вылезет мастер вставки функций, выберите там категорию "Определенные пользователем" и посмотрите.

Кто как, но я довольно редко использую в файлах UDF-ки, лежащие в Персонале. Я их оттуда копирую и вставляю в сам файл. Тогда его (файл) можно переносить на другие компьютеры, на которых нет в Персонале этой UDF.
Впрочем, по-разному бывает, иногда и из Персонала использую.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Нет, пишу сразу

И Excel ищет макрос СЦЕПИТЬЕСЛИ в текущей книге. Не находит. И ругается.

В Excel cлева от строки формул есть кнопочка fx, нажмите на нее, вылезет мастер вставки функций, выберите там категорию "Определенные пользователем" и посмотрите.

Кто как, но я довольно редко использую в файлах UDF-ки, лежащие в Персонале. Я их оттуда копирую и вставляю в сам файл. Тогда его (файл) можно переносить на другие компьютеры, на которых нет в Персонале этой UDF.
Впрочем, по-разному бывает, иногда и из Персонала использую.

Автор - _Boroda_
Дата добавления - 25.10.2016 в 10:27
Мурад Дата: Вторник, 25.10.2016, 10:34 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 412
Репутация: 17 ±
Замечаний: 0% ±

Excel 2007
Ну говорили мне об этом уже :( :( :(
Как запомнить на будущее, чтоб не плодить лишних тем.
Спасибо, Александр! Некоторые часами делают полезное дело, создают макросы для удобства пользователей, а кто-то не может толком научиться ими пользоваться..
Может, для склеротиков, вроде меня, стоит уточнять в формуле, что ее использовать через функции, определенные пользователем (наподобие того, как часто напоминают о правильном использовании формулы массива - Ctrl+Shift+Enter)?
 
Ответить
СообщениеНу говорили мне об этом уже :( :( :(
Как запомнить на будущее, чтоб не плодить лишних тем.
Спасибо, Александр! Некоторые часами делают полезное дело, создают макросы для удобства пользователей, а кто-то не может толком научиться ими пользоваться..
Может, для склеротиков, вроде меня, стоит уточнять в формуле, что ее использовать через функции, определенные пользователем (наподобие того, как часто напоминают о правильном использовании формулы массива - Ctrl+Shift+Enter)?

Автор - Мурад
Дата добавления - 25.10.2016 в 10:34
SLAVICK Дата: Вторник, 25.10.2016, 11:41 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 1834
Репутация: 613 ±
Замечаний: 0% ±

2007,2010,2013,2016
Кто как, но я довольно редко использую в файлах UDF-ки, лежащие в Персонале.
Я каждый день пользуюсь.

Нет, пишу сразу

Тоже так всегда пишу - все работает.

Попробуйте изменить имя функции - может поможет.

Добавлено:
Вот я башка дырявая - у меня же личные книги макросов, сохранены как надстройки - поэтому у меня и работает...
Сохраните личную книгу макросов как надстройку:
для этого можно такой макрос запустить из личной книги макросов:
[vba]
Код
Sub Сохранить_книгу_как_надстройку()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.IsAddin = True
wb.Save
End Sub
[/vba]
К сообщению приложен файл: 6951814.jpg(36Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Кто как, но я довольно редко использую в файлах UDF-ки, лежащие в Персонале.
Я каждый день пользуюсь.

Нет, пишу сразу

Тоже так всегда пишу - все работает.

Попробуйте изменить имя функции - может поможет.

Добавлено:
Вот я башка дырявая - у меня же личные книги макросов, сохранены как надстройки - поэтому у меня и работает...
Сохраните личную книгу макросов как надстройку:
для этого можно такой макрос запустить из личной книги макросов:
[vba]
Код
Sub Сохранить_книгу_как_надстройку()
Dim wb As Workbook
Set wb = ThisWorkbook
wb.IsAddin = True
wb.Save
End Sub
[/vba]

Автор - SLAVICK
Дата добавления - 25.10.2016 в 11:41
Мурад Дата: Вторник, 25.10.2016, 12:24 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 412
Репутация: 17 ±
Замечаний: 0% ±

Excel 2007
SLAVICK, спасибо огромное! Сработало. Теперь список доступных функций, определенных пользователем, отображается в раскрывающемся списке при вводе первых букв функции :)
 
Ответить
СообщениеSLAVICK, спасибо огромное! Сработало. Теперь список доступных функций, определенных пользователем, отображается в раскрывающемся списке при вводе первых букв функции :)

Автор - Мурад
Дата добавления - 25.10.2016 в 12:24
Мурад Дата: Вторник, 25.10.2016, 16:52 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 412
Репутация: 17 ±
Замечаний: 0% ±

Excel 2007
Сохраните личную книгу макросов как надстройку:
для этого можно такой макрос запустить из личной книги макросов:

Только заметил побочный эффект такого действия - пропал список доступных макросов при нажатии на кнопку "Макросы" на ленте :)
 
Ответить
Сообщение
Сохраните личную книгу макросов как надстройку:
для этого можно такой макрос запустить из личной книги макросов:

Только заметил побочный эффект такого действия - пропал список доступных макросов при нажатии на кнопку "Макросы" на ленте :)

Автор - Мурад
Дата добавления - 25.10.2016 в 16:52
krosav4ig Дата: Вторник, 25.10.2016, 18:17 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1340
Репутация: 536 ±
Замечаний: 0% ±

Excel 2007, 2013
побочный эффект

он легко лечится
и, кстати, не обязательно сохранять как надстройку, достаточно установить свойство IsAddin при открытии PERSONAL.XLSB
в стандартный модуль личной книги макросов
[vba]
Код
Sub Auto_Open()
    ThisWorkbook.IsAddin = True
    Application.OnKey "%{F8}", "ShowMacro"
End Sub
Sub ShowMacro()
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    Application.ScreenUpdating = False
    With ThisWorkbook
        .IsAddin = False
        wb.Activate
        Application.CommandBars.ExecuteMso "PlayMacro"
        DoEvents
        .IsAddin = True
    End With
    Application.ScreenUpdating = True
End Sub
[/vba]и вместо тыканья по ленте жать Alt+F8


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Вторник, 25.10.2016, 18:23
 
Ответить
Сообщение
побочный эффект

он легко лечится
и, кстати, не обязательно сохранять как надстройку, достаточно установить свойство IsAddin при открытии PERSONAL.XLSB
в стандартный модуль личной книги макросов
[vba]
Код
Sub Auto_Open()
    ThisWorkbook.IsAddin = True
    Application.OnKey "%{F8}", "ShowMacro"
End Sub
Sub ShowMacro()
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    Application.ScreenUpdating = False
    With ThisWorkbook
        .IsAddin = False
        wb.Activate
        Application.CommandBars.ExecuteMso "PlayMacro"
        DoEvents
        .IsAddin = True
    End With
    Application.ScreenUpdating = True
End Sub
[/vba]и вместо тыканья по ленте жать Alt+F8

Автор - krosav4ig
Дата добавления - 25.10.2016 в 18:17
SLAVICK Дата: Среда, 26.10.2016, 08:37 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 1834
Репутация: 613 ±
Замечаний: 0% ±

2007,2010,2013,2016
Хм. Может я чего не понимаю, но зачем столько действий и кода, если достаточно один раз сохранить книгу с включенной отметкой IsAddin и забыть про все мороки(что я и сделал(сделал и забыл :D )).
и вместо тыканья по ленте жать Alt+F8

и чем это проще?
у мну на ленте сгруппировано(разбито на категории) свыше 100 макросов клацнул один раз по вкладке - второй по макросу... итого два клика. а так - попробуй найди в списке (особенно если не помнишь названия)... %) .


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеХм. Может я чего не понимаю, но зачем столько действий и кода, если достаточно один раз сохранить книгу с включенной отметкой IsAddin и забыть про все мороки(что я и сделал(сделал и забыл :D )).
и вместо тыканья по ленте жать Alt+F8

и чем это проще?
у мну на ленте сгруппировано(разбито на категории) свыше 100 макросов клацнул один раз по вкладке - второй по макросу... итого два клика. а так - попробуй найди в списке (особенно если не помнишь названия)... %) .

Автор - SLAVICK
Дата добавления - 26.10.2016 в 08:37
krosav4ig Дата: Среда, 26.10.2016, 15:36 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1340
Репутация: 536 ±
Замечаний: 0% ±

Excel 2007, 2013
и чем это проще?

А я и не говорил, что это проще :)
написали, что не отображаются макросы
при нажатии на кнопку "Макросы" на ленте
и я написал костыль для обхода этой проблемы
а если книга ужо была сохранена как надстройка, то можно убрать строку [vba]
Код
ThisWorkbook.IsAddin = True
[/vba]


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Среда, 26.10.2016, 15:36
 
Ответить
Сообщение
и чем это проще?

А я и не говорил, что это проще :)
написали, что не отображаются макросы
при нажатии на кнопку "Макросы" на ленте
и я написал костыль для обхода этой проблемы
а если книга ужо была сохранена как надстройка, то можно убрать строку [vba]
Код
ThisWorkbook.IsAddin = True
[/vba]

Автор - krosav4ig
Дата добавления - 26.10.2016 в 15:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » правильное копирование функции UDF в книгу макросов (Макросы/Sub)
Страница 1 из 11
Поиск:

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