Страницы: 1 2 След.
RSS
Получить имя активной книги без его расширения (без '.xls' or 'xlsx')
 
Добрый день!  
Как можно Получить имя активной книги без его расширения (без '.xls' or 'xlsx').    
Например АктивВоркбук.нэйм извлекает так "Книга.хлс" а нужно чтоб давало "Книга" и все.  
Спасибо заранее...
With my best regards,      Inter_E
 
Привет.  
Public Sub qwe()  
Dim a As String, b As String  
b = ActiveWorkbook.Name  
a = Replace(b, ".xlsx", "")  
If Len(a) = Len(b) Then a = Replace(b, ".xls", "")  
End Sub
Я сам - дурнее всякого примера! ...
 
А если в середине названия такое встречается? У меня бывало :)  
Может лучше анализировать 4-5 последних символов и отрезать. Да и ещё регистр символов может быть разный...
 
{quote}{login=KuklP}{date=17.08.2010 01:28}{thema=}{post}Привет.  
Public Sub qwe()  
Dim a As String, b As String  
b = ActiveWorkbook.Name  
a = Replace(b, ".xlsx", "")  
If Len(a) = Len(b) Then a = Replace(b, ".xls", "")  
End Sub{/post}{/quote}  
 
Да Hugo прав, если в середине окажется? Мне тоже мысль отрезать в первую очередь приходило. Но это тоже не красивый вариант.    
Может все таки есть такой нормальная-официальная функция?
With my best regards,      Inter_E
 
Ну если в середине названия оказывается ".xls", то можно только посочувствовать тому, кто так называет файлы и помянуть добрым словом старый добрый DOS:-)  
Так, что берите.
Я сам - дурнее всякого примера! ...
 
{quote}{login=Inter_E ответ > KuklP}{date=17.08.2010 01:41}{thema=Re: }{post}{quote}{login=KuklP}{date=17.08.2010 01:28}{thema=}{post}{/post}{/quote}если в середине окажется? {/post}{/quote}  
Inter_E, да кому же такое в голову (не больную) придёт?! Согласен с Сергеем.
 
Вдогонку: файл называется xls.Книга1
 
{quote}{login=Юрий М}{date=17.08.2010 02:20}{thema=}{post}Вдогонку: файл называется xls.Книга1{/post}{/quote} Не катит - точка не там. Надо:  .xls.Книга1:-)
Я сам - дурнее всякого примера! ...
 
Кажется всетаки есть какая-та функция вроде "ActiveWorkbook.RootName" для получения только имени...  
Неужели, это конец vb?  
Может попросим великих знатоков еще?
With my best regards,      Inter_E
 
MsgBox Replace(Application.Caption, "Microsoft Excel -", "")  
MsgBox Split(Application.Caption, "-")(1)
 
{quote}{login=Юрий М}{date=17.08.2010 03:07}{thema=}{post}MsgBox Replace(Application.Caption, "Microsoft Excel -", "")  
MsgBox Split(Application.Caption, "-")(1){/post}{/quote}  
И что получится?
Я сам - дурнее всякого примера! ...
 
Так, наверное:  
MsgBox Split(Replace(Application.Caption, "Microsoft Excel -", ""), ".")(0)
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=17.08.2010 03:24}{thema=}{post}Так, наверное:  
MsgBox Split(Replace(Application.Caption, "Microsoft Excel -", ""), ".")(0){/post}{/quote}  
 
Огромное спасибо Вам Юрий, KukIP!  
Теперь вроде правильно работает,даже если там внутри присутствуют слова xls, xlsx!
With my best regards,      Inter_E
 
{quote}{login=Inter_E ответ > KuklP}{date=17.08.2010 03:32}{thema=Re: }{post}{quote}{login=KuklP}{date=17.08.2010 03:24}{thema=}{post}Так, наверное:  
MsgBox Split(Replace(Application.Caption, "Microsoft Excel -", ""), ".")(0){/post}{/quote}  
 
Огромное спасибо Вам Юрий, KukIP!  
Теперь вроде правильно работает,даже если там внутри присутствуют слова xls, xlsx!{/post}{/quote}  
 
Я думаю кто то точно сталкнется с этой проблемой  
и она теперь решена  
а так искал вроде до этого не было на форуме подобной проблемы!
With my best regards,      Inter_E
 
Ну, так проще - меньше бубнов:  
MsgBox Split(ThisWorkbook.Name, ".")(0)
Я сам - дурнее всякого примера! ...
 
Тоже не универсально - ведь у человека может вдруг быть код  
 
Private Sub Workbook_Open()  
   Application.Caption = " "  
   ActiveWindow.Caption = "Терпеть не могу - " & ThisWorkbook.Name  
End Sub  
 
ну мало ли, терпеть не может Microsoft :)
 
Но опять же, куча точек в названии не редкость. Вот, например с этого форума: CompareFiles.Find.Rus.v132.xls. Так, что вернулись на исходную.
Я сам - дурнее всякого примера! ...
 
Пока писал, Сергей нашёл вариант, обходящий "Терпеть не могу" :)
 
еще вариант:  
Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
 
Хм... у меня часто в названии точка используется вместо "_" ...
 
Во, webley нашёл!
 
Вот для придурошных имен:  
Sub Макрос1()  
' Макрос записан 17.08.2010 (Sergey)  
Dim a As String, v  
a = ThisWorkbook.Name  
v = Split(a, ".")  
MsgBox Replace(a, "." & v(UBound(v)), "")  
End Sub
Я сам - дурнее всякого примера! ...
 
У webley короче.
Я сам - дурнее всякого примера! ...
 
Да и с именем Bwdwqd.xls.jkkl.ook2.xls справился только webley.
 
{quote}{login=KuklP}{date=17.08.2010 03:18}{thema=Re: }{post}{quote}{login=Юрий М}{date=17.08.2010 03:07}{thema=}{post}{/post}{/quote}И что получится?{/post}{/quote}  
Нормально получится. Что не так?
 
то HUGO: Ну да.  
Юр, а у меня вместе с расширением заголовок. И МСГБОКС выдает его с расширением.
Я сам - дурнее всякого примера! ...
 
А у меня вариант Юрия работает отлично, вот!  
 
"39039"
<FONT COLOR="CadetBlue">
 
Так:
Я сам - дурнее всякого примера! ...
 
Я же отталкивался от того, что вижу у себя :-)
 
Серж, ремонтируй свой MsgBox :-)
Страницы: 1 2 След.
Читают тему
Наверх