Какие настройки мне нужны при создании макроса? - PullRequest
1 голос
/ 04 июня 2010

У меня есть куча кода VBA, который я хотел бы добавить в макрос.

Обычно я вызываю группу подпрограмм, которые обновляют страницу.

Это выглядит примерно так:

Call Update1("Work", strConn)
Call Update2("Work", strConn)
Call Update3("Work", strConn)

где Update1, Update2 и update3 находятся на одном листе с формой

Public Sub Update1(strPlace, strConn)
SQL code..
End Sub

Как бы я все это бросил в макрос? Могу ли я скопировать и вставить весь код (включая вызовы?), Который не работает. Ни один не взял только Subs. Не уверен, что дальше.

1 Ответ

1 голос
/ 04 июня 2010

Все, что вам нужно, это вставить модуль в качестве контейнера для всего этого кода. Если каждый из Сабвуферы UPDATE относятся только к одному листу, поэтому они, вероятно, также должны быть в модуле.

Все ваши операторы "call" должны быть собственными SUB myMain () ... END SUB

Как только вы это сделаете, вы можете либо запустить его из списка инструментов, списка макросов, либо подключить его к другим событиям (настраиваемая кнопка панели инструментов или что-то еще)

Edit: если быть более точным, вот как должен выглядеть ваш модуль:

Sub myMainMacro()
    '... initialize stuff
    Call Update1("Work", strConn)
    Call Update2("Work", strConn)
    Call Update3("Work", strConn)
    '... do more stuff
End Sub

Sub Update1(strPlace, strConn)
    SQL code..
End Sub

Sub Update2(strPlace, strConn)
    SQL code..
End Sub

'... other UPDATE SUBs here

Function CalculateValue(myInput as integer) as integer
    '... do calculations here
    CalculateValue = answer
End Function

Весь код (кроме объявлений глобальных переменных, о которых мы не говорили) должен быть внутри SUB или FUNCTION (функция возвращает значение, а SUB - нет). Поскольку все они находятся в одном модуле, ключевое слово PUBLIC необязательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...