Страницы: 1
RSS
Имя файла без расширения
 
Нужно, чтобы строка макроса (и др. подобные)  
 
Workbooks("ОФИС.xlsm").Worksheets("2010")  
 
одинаково работала с файлами "ОФИС.xlsm", "ОФИС.xlsb", "ОФИС.xls".  
Имя не меняется, только расширение.  
Как это сделать без редактирования в каждом файле?
 
Subscript out of range
 
Dim wb As Workbook  
   For Each wb In Workbooks  
       If wb.Name Like "ОФИС.xl*" Then Exit For  
   Next wb  
   If Not wb Is Nothing Then MsgBox wb.Name
KL
 
Кстати, у меня почему-то подозрение, что запускаемый макрос находится как раз в файле ОФИС.xl*. Если это так, то тогда к файлу вообще не нужно обращаться по имени, а использовать Me из модуля ThisWorkbook(ЭтаКнига) или ThisWorkbook из всех остальных модулей. Например:  
 
Me.Worksheets("2010")  
ThisWorkbook.Worksheets("2010")  
ActiveWorkbook.Worksheets("2010")
KL
 
KL  
Да, макрос в этой книге.  
Но это макрос синхронизации двух книг на 2 компьютерах, и он поочередно обращается к каждой из них. Если бы не это, то и имя книги было бы без нать.  
Идея с Like интересная.  
Завтра попробую.  
 
The_Prist  
СПАСИБО за поздравление!  
Я очень рад, что ответ EXCELа полностью совпал с ожидаемым Вами!
 
А как подробнее объяснить?  
После замены строки на предложенную, макрос встает на этой строке и выдает вышеизложенную ошибку.  
Причем встает при как при замене строки с именем активной книги, так и неактивной открытой книги.  
Другой информации нет.
 
Идея с Like оказалась удачной.  
Все работает.
Страницы: 1
Читают тему
Наверх