Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Присвоение переменной имени открываемой книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Присвоение переменной имени открываемой книги (Макросы/Sub)
Присвоение переменной имени открываемой книги
maverick_77 Дата: Среда, 01.07.2015, 14:26 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый день.

С помощью макроса переменной присваивается имя текущей открытой книги:
[vba]
Код
FN = Application.ActiveWorkbook.Name
[/vba]
Но тогда значение присваивается вместе с расширением .xlsm
Т.е. значение переменной FN такое: "Имя-Книги.xlsm"
Можно ли как-то присвоить только "Имя-Книги"


если нельзя, но очень хочется, то можно!
 
Ответить
СообщениеДобрый день.

С помощью макроса переменной присваивается имя текущей открытой книги:
[vba]
Код
FN = Application.ActiveWorkbook.Name
[/vba]
Но тогда значение присваивается вместе с расширением .xlsm
Т.е. значение переменной FN такое: "Имя-Книги.xlsm"
Можно ли как-то присвоить только "Имя-Книги"

Автор - maverick_77
Дата добавления - 01.07.2015 в 14:26
RAN Дата: Среда, 01.07.2015, 14:31 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
FN = Left$(ActiveWorkbook.Name, Instrrev(ActiveWorkbook.Name,".")-1)
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
FN = Left$(ActiveWorkbook.Name, Instrrev(ActiveWorkbook.Name,".")-1)
[/vba]

Автор - RAN
Дата добавления - 01.07.2015 в 14:31
Manyasha Дата: Среда, 01.07.2015, 14:37 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Или так:[vba]
Код
FN = CreateObject("Scripting.FileSystemObject").GetBaseName(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name)
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИли так:[vba]
Код
FN = CreateObject("Scripting.FileSystemObject").GetBaseName(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name)
[/vba]

Автор - Manyasha
Дата добавления - 01.07.2015 в 14:37
maverick_77 Дата: Среда, 01.07.2015, 14:44 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Manyasha, RAN, Спасибо большое!
Сработало. Вроде как надо =)

________
upd

Вариант Manyasha сработал лучше, когда изначально открываем файл из шаблона excel
Вариант RAN работал хорошо, если изначально открывать просто книгу. Но ругался почему-то если открывать шаблон excel


если нельзя, но очень хочется, то можно!

Сообщение отредактировал maverick_77 - Четверг, 02.07.2015, 14:00
 
Ответить
СообщениеManyasha, RAN, Спасибо большое!
Сработало. Вроде как надо =)

________
upd

Вариант Manyasha сработал лучше, когда изначально открываем файл из шаблона excel
Вариант RAN работал хорошо, если изначально открывать просто книгу. Но ругался почему-то если открывать шаблон excel

Автор - maverick_77
Дата добавления - 01.07.2015 в 14:44
RAN Дата: Среда, 01.07.2015, 14:49 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Manyasha, если из пушки по воробьям, то
[vba]
Код
ActiveWorkbook.Path & "\" & ActiveWorkbook.Name =ActiveWorkbook.FullName
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеManyasha, если из пушки по воробьям, то
[vba]
Код
ActiveWorkbook.Path & "\" & ActiveWorkbook.Name =ActiveWorkbook.FullName
[/vba]

Автор - RAN
Дата добавления - 01.07.2015 в 14:49
Manyasha Дата: Среда, 01.07.2015, 15:01 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
RAN, смешно даже, что сама не вспомнила про него (про полное имя).
Спасибо!)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеRAN, смешно даже, что сама не вспомнила про него (про полное имя).
Спасибо!)

Автор - Manyasha
Дата добавления - 01.07.2015 в 15:01
AndreTM Дата: Среда, 01.07.2015, 17:07 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
А если без пушек, то FSO.GetBaseName() не требует указания полного пути для файла, можно просто применить эту функцию только к имени, результат будет тот же... :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеА если без пушек, то FSO.GetBaseName() не требует указания полного пути для файла, можно просто применить эту функцию только к имени, результат будет тот же... :)

Автор - AndreTM
Дата добавления - 01.07.2015 в 17:07
maverick_77 Дата: Четверг, 02.07.2015, 14:02 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
AndreTM, поясните, пожалуйста...
Вы имеете в виду сделать так:
[vba]
Код
FN = FSO.GetBaseName()
[/vba]
???


если нельзя, но очень хочется, то можно!
 
Ответить
СообщениеAndreTM, поясните, пожалуйста...
Вы имеете в виду сделать так:
[vba]
Код
FN = FSO.GetBaseName()
[/vba]
???

Автор - maverick_77
Дата добавления - 02.07.2015 в 14:02
Макрописец Дата: Четверг, 02.07.2015, 14:05 | Сообщение № 9
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Вы имеете в виду сделать так:

Как я понял - Да.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
Сообщение
Вы имеете в виду сделать так:

Как я понял - Да.

Автор - Макрописец
Дата добавления - 02.07.2015 в 14:05
Manyasha Дата: Четверг, 02.07.2015, 14:56 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Макрописец, а проверить не хотите прежде чем заверять в работоспособности такого варианта?
maverick_77, читаем внимательней:
применить эту функцию только к имени
Ну и конечно же про создание FSO не забываем[vba]
Код
Set FSO = CreateObject("Scripting.FileSystemObject")
FN = FSO.GetBaseName(ActiveWorkbook.Name)
[/vba]
[p.s.]AndreTM, спасибо, запомню![/p.s.]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеМакрописец, а проверить не хотите прежде чем заверять в работоспособности такого варианта?
maverick_77, читаем внимательней:
применить эту функцию только к имени
Ну и конечно же про создание FSO не забываем[vba]
Код
Set FSO = CreateObject("Scripting.FileSystemObject")
FN = FSO.GetBaseName(ActiveWorkbook.Name)
[/vba]
[p.s.]AndreTM, спасибо, запомню![/p.s.]

Автор - Manyasha
Дата добавления - 02.07.2015 в 14:56
Макрописец Дата: Четверг, 02.07.2015, 15:15 | Сообщение № 11
Группа: Заблокированные
Ранг: Форумчанин
Сообщений: 128
Репутация: 7 ±
Замечаний: 100% ±

Excel 2010
Manyasha,
Мне не на чем проверить было. Большое спасибо. Мне очень может пригодиться.


ТЕРПЕНИЕ И ТРУД - ВСЁ ПЕРЕТРУТ!
 
Ответить
СообщениеManyasha,
Мне не на чем проверить было. Большое спасибо. Мне очень может пригодиться.

Автор - Макрописец
Дата добавления - 02.07.2015 в 15:15
китин Дата: Четверг, 02.07.2015, 17:42 | Сообщение № 12
Группа: Модераторы
Ранг: Экселист
Сообщений: 7016
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Цитата Макрописец, 02.07.2015 в 14:05, в сообщении № 9
Как я понял - Да.

Цитата Макрописец, 02.07.2015 в 15:15, в сообщении № 11
Мне не на чем проверить было

hands


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 02.07.2015, 17:42
 
Ответить
Сообщение
Цитата Макрописец, 02.07.2015 в 14:05, в сообщении № 9
Как я понял - Да.

Цитата Макрописец, 02.07.2015 в 15:15, в сообщении № 11
Мне не на чем проверить было

hands

Автор - китин
Дата добавления - 02.07.2015 в 17:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Присвоение переменной имени открываемой книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!