Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2011, 10:31   #1
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию Автоматизированное создание макроса

Уважаемые знатоки VBA, помогите пожалуйста со следующим вопросом:
Как макросом создавать макрос?
Существует готовый макрос для некоторого вида файлов. Код макроса разбит, часть в листе, часть в книге, часть в модуле. Файлы, для которых этот макрос можно использовать, периодически то появляются, то исчезают. Можно ли сделать так, чтобы пользователь не копипастил каждый раз код в новый файл? То есть как-то автоматизировать процесс.

Последний раз редактировалось 3BEPOBOY; 25.01.2011 в 10:54.
3BEPOBOY вне форума Ответить с цитированием
Старый 25.01.2011, 11:19   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Макрос можно держать в любом другом файле. Например, иметь файл-инструмент с кодом, которым обрабатывать любые другие файлы. Зачем код помещать именно в эти файлы?

А добавить можно:
http://www.msoffice.nm.ru/faq/macros.htm
См. с 350 пункта.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 25.01.2011 в 11:22.
Hugo121 вне форума Ответить с цитированием
Старый 26.01.2011, 11:00   #3
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

Hugo121
спасибо за мысль, в дальнейшем пригодится. Хотя в данном случае не подойдет.

У меня сейчас небольшая проблема возникла. Не хочу создавать новую тему.
Вобщем нужно изменить формат нескольких столбцов. Я записал макрос, получил следующий код
Код:
Columns("B:B").Select
    Range("B2").Activate
    Selection.NumberFormat = "@"
    Columns("C:C").Select
    Range("C2").Activate
    Selection.NumberFormat = "0.00"
    Columns("F:F").Select
    Range("F2").Activate
    Selection.NumberFormat = "@"
    Columns("G:G").Select
    Range("G2").Activate
    Selection.NumberFormat = "0.00"
    Range("C5").Select
запускаю, а он мне делает "0.00" весь лист.
пробовал так
Код:
SheetY.Columns("B:B").Select
    SheetY.Range("B2").Activate
    Selection.NumberFormat = "@"
где SheetY определена. Пробовал удалять непонятную для меня строку
Код:
Range("B2").Activate
результат один и тот же(((

Помогите разобраться пожалуйста!

Офис стоит 2003, Windows 7ой.

Последний раз редактировалось 3BEPOBOY; 26.01.2011 в 11:02. Причина: Дополняю сообщение сведениями о системе.
3BEPOBOY вне форума Ответить с цитированием
Старый 26.01.2011, 11:08   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так не годится?
Код:
Sub tt()
    [b2].NumberFormat = "@"
    [c2].NumberFormat = "0.00"
    [f2].NumberFormat = "@"
    [g2].NumberFormat = "0.00"
End Sub
Или так (пример на колонки J, K):
Код:
Sub ttt()
Columns(10).NumberFormat = "@"
Columns(11).NumberFormat = "0.00"
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 26.01.2011 в 11:13.
Hugo121 вне форума Ответить с цитированием
Старый 26.01.2011, 11:19   #5
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Так не годится?
годится)) спасибо! только [b2] на [b:b] поменял.

Но если кто напишет почему мой вариант не заработал, буду счастлив. А то лишний повод не спать ночами...
3BEPOBOY вне форума Ответить с цитированием
Старый 26.01.2011, 11:25   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

У меня на 2000 Экселе и Ваш вариант отработал. Только не нужны в данном случае все эти селекты-активаты...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 26.01.2011, 11:35   #7
3BEPOBOY
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 82
По умолчанию

Ладно, спишем на глюки майкрософта. Согласен, не нужны, так удобнее. Мне просто нужно в макросе таблицу рисовать красивую, я воспользовался макрорекрдером, понравилось)
3BEPOBOY вне форума Ответить с цитированием
Старый 26.01.2011, 13:52   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ВНИМАНИЕ!

GRS1988
Djeki

на первый раз Ваше обсуждение перенёс в новую тему.
Хотя, по правилам, все эти сообщения должны были быть удалены!

Модератор.


p.s. сообщения перенёс в новую тему:
Автоматически считать сумму по интервалам времени макросом
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическое создание макроса lavrentiyy Microsoft Office Excel 16 14.10.2010 00:07
Создание макроса Ленусик777 Microsoft Office Excel 4 28.05.2010 14:49
Автоматизированное создание БД kino БД в Delphi 17 15.05.2010 14:33
Создание макроса SeregaSled Microsoft Office Access 2 28.12.2009 05:55
Помогите!!!!!!!! Создание макроса!!!! Ленусик777 Помощь студентам 1 26.04.2009 22:17