2013-12-17 3 views
1

Мы ежедневно получаем файлы Excel Excel из наших офисов Fields, которые я должен использовать для VBA, чтобы очистить и переформатировать около 110 столбцов и 500 строк. Как вы можете видеть, у меня есть большая группа VBA, и мне нужно сохранить их как макрос таким образом, чтобы мы могли использовать его для очистки всех новых листов приема, выполнив макрос и, наконец, сохранить отредактированный лист. Как новый рабочий лист путем получения имени из элементов Combomox UserForm.Где точно хранить VBA

Теперь Мой вопрос Где именно я должен хранить фрагменты кода VBA я имею в виду, когда я открываю Базовая панель Визуальная У меня есть эти три варианта (Насколько я знаю)
A-: Запуск кода из объекта Microsoft Excel: Sheets1 (Лист1)
B-: Выполнение кода из вставленного модуля
C-: Выполнение кода от пользователя Форма

enter image description here

Если я должен использовать варианты А или в, как я могу позвонить для UserForm для сохранения листа?

Благодаря

ответ

1

Я рекомендую вам использовать модули (Вариант B)

Вариант C идет с опцией B, плохо объяснить, вы можете создать суб в модуле в варианте Б, то вы можете сделать:

UserForm1.show 

в варианте BI будет writte этого кода, но, прежде чем пытаться это я рекомендую вам, чтобы понять немного больше УВЫ

sub ClearWBs() 

'opening workbook 
Workbooks.Open Filename:="c:\book1.xls" 

'your code 

'your code 


'below code for saving and closing the workbook 
Workbooks("book1.xls").Activate 
ActiveWorkbook.Save 
ActiveWorkbook.Close 

end sub 
+0

Привет, bto и спасибо за ваш комментарий, ok позволяет сделать его простым, где я должен поместить свой код? я имею в виду, если я хочу очистить листы, это будет сам модуль или лист? – user1760110

+0

Я обновил свой ответ –

+0

Ваш код будет работать везде, где вы его положили. Однако, если вы поместите его в модуль, он подразумевает, что код не связан с какой-либо конкретной формой или листом Excel - это то, что вы хотите. Там нет функциональной разницы, но «правильная» практика программирования диктовала бы вам поместить ее в модуль. –

0

Использование модуля:
Если ваш код VBA сфокусирован на обобщении и манипулировании данными, я предлагаю вам использовать Module (пример - то, что вы описали в своем вопросе).

Применение Форма:
Если то, что вы wan't сделать требует GUI (графический интерфейс пользователя), то вам придется прибегнуть к Form, где вы можете создать свой графический интерфейс. (Например, если у вас есть много полей, которые пользователь должен заполнить с различными значениями, в которых вы предоставляете выбор)

Использование Excel Object:
Если то, что вы wan't сделать что-то делать с событиями, происходящими на рабочем листе и/или рабочей книге, например, всякий раз, когда вы добавляете лист, выполняемый макросом, или когда вы открываете или закрываете книгу, макрос запускается, тогда вам нужно будет написать макрос в Excel Object.

Это в основном то, что я имею в виду, надеюсь, что это поможет.

0

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

Вы можете видеть, как сделать это здесь: http://office.microsoft.com/en-ca/excel-help/copy-your-macros-to-a-personal-macro-workbook-HA102174076.aspx

Это хорошо, потому что вы можете также связать его с клавиатуры ярлык или просто он всегда готов к использованию.

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

Как только это будет сделано, вам не придется включать модуль в свои файлы, которые вы получили снова.

Смежные вопросы