2013-09-10 5 views
0

Я работаю с довольно длинным кодом VBA в Excel, который ссылается на несколько книг. Проблема заключается в том, что имя каждой рабочей книги меняется каждый месяц, чтобы отразить новый месяц/дату, а затем требует, чтобы я обновил код с новым именем книги, чтобы он работал. Кроме того, изменение названия не всегда является стандартным в каждом месяце.Изменить имена книг на стандартные имена в VBA

Можно ли каким-либо образом в целях кода VBA переименовать каждую книгу, чтобы код использовал какое-то стандартное имя, поэтому мне не нужно менять его каждый раз? Я знаю, что могу просто создать новую переменную, назовите ее «book1» и измените ее определение, чтобы отразить новое имя книги, но все, кто будет использовать макрос, не знают, как использовать VBA и, следовательно, не могут идти каждый месяц и просто менять имя переменной. В идеале я хочу, чтобы VBA всегда распознавал файл, независимо от его реального имени, как другое имя, которое я установил и не менял. Я думаю, что есть какое-то «техническое имя», которое привязано к каждому файлу, который не изменяется, что я могу использовать?

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

Это может быть или не быть возможно, но спасибо за вашу помощь, тем не менее!

+0

ли имена файлов этих книг также изменится? – jmstoker

+0

Вот несколько советов о том, как ссылаться на рабочую книгу, которая может быть полезной. http://www.techrepublic.com/blog/10-things/10-ways-to-reference-excel-workbooks-and-sheets-using-vba/ – jmstoker

+0

Метод «Workbooks.Open» позволит пользователю выбрать с которыми будет работать макрос. Этот метод можно использовать в переменной объекта «Рабочая книга» вместо строкового или жестко закодированного элемента, например «Рабочие книги» («c: \ files \ August_Report.xlsx») »и т. Д. –

ответ

0

2 возможности:

  • Вы можете поместить в дополнительный лист в книге, и в этом листе определяют, что имя файла является правильным. Любой пользователь Excel должен иметь возможность сохранить эту информацию. Вы могли бы, конечно, проверить - перед запуском вашего кода Long VBA - если файлы существуют.
  • Если имя файла, например, «filetobeused12_august2013», то вы можете искать новейший файл, который начинается с «filetobeused12», и использовать этот файл в коде. Это более сложный подход!

надежда, что помогает, макс

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