Страницы: 1
RSS
Возможно ли заменить код VBA (в макросе), не открывая сам макрос
 
Доброго времени суток!

Для визуализации примера имеется код:

Код
Sub Макрос1()
'
' Макрос1 Макрос
'
Workbooks.Open Filename:="D:\10.07.2019\dead10.07.2019.xlsx"
    Range("A5:B6").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
Workbooks.Open Filename:="D:\10.07.2019\rip10.07.2019.xlsx"
    Range("A1:B4").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
Workbooks.Open Filename:="D:\10.07.2019\skull10.07.2019.xlsx"
    Range("A2:B5").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
End Sub

Обыскал весь интернет и форум данного сайта - решение не нашел.

Дело в том, что необходимо открывать файлы каждый день, копировать из них содержимое и вставлять в какой-то файл. Все наименования файлов приведены условные.

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

Суть задачи в том, что даты изменяются. Приходится каждый раз открывать макрос, заменять даты на требуемые и потом уже выполнять макрос.

Задача: возможна ли замена кода (дат) непосредственно из листа (не открывая макрос)?

Т.е., например, создать выпадающий список с датами, к ним привязать флажки (из элемента управления формы), а уже к ним макросы (в которых будут заменяться даты) (примерно как на скрине). Или есть более простой способ, который я не вижу?

Буду благодарен любым комментариям и рассуждениям.
 
Доброй ночи!
Можно проще: занесите путь файла в переменную из ячейки:
<dim FileAdres
FileAdres=[A1]>
а в ячейку А1 пишите нужный путь и имя файла (D:\10.07.2019\skull10.07.2019.xlsx).
 
Код
Sub Макрос1()
  Dim sdt$
  sdt = Format([A2], "DD.MM.YYYY")
  Workbooks.Open Filename:="D:\" & sdt & "\dead" & sdt & ".xlsx"
    Range("A5:B6").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
  Workbooks.Open Filename:="D:\" & sdt & "\rip" & sdt & ".xlsx"
    Range("A1:B4").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
  Workbooks.Open Filename:="D:\" & sdt & "\skull" & sdt & ".xlsx"
    Range("A2:B5").Select
    Selection.Copy
    Windows("test1.xlsm").Activate
    ActiveSheet.Paste
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Если читать название темы, то - найти черную кошку в черной комнате легче, чем не открывая что-то изменить.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх