Страницы: 1
RSS
Копирование имени файла из указанной папки в ячейку
 
Добрый день. Необходимо чтобы в ячейку А1 копировалось имя файла без расширения, файл находится в папке C:\Program Files\WinRAR. В папке всегда находится только один файл.
 
DimaLulchuk вы вроде бы не первый день на форуме, а формулируете вопрос как то не до конца.  
Сразу встречный вопрос:  
Кому необходимо )) (шютка)  
По какому событию необходимо (нажатие на кнопку, открытие файла, выделение определенной ячейки, изменение значения в ячейке, мысленный посыл указания екселю ???)
Редко но метко ...
 
Хотелось чтобы при мысленном посыле указания екселю, но для начала при нажатие на кнопку.
 
тогда повесьте на кнопку продцедуру:  
Sub test()  
   Dim f  
On Error Resume Next  
   For Each f In CreateObject("Scripting.FileSystemObject").GetFolder("C:\Program Files\WinRAR").Files  
       [A1] = f.Name
       Exit For  
   Next f  
End Sub  
 
Получите в ячейке имя первого файла в указанной папке
Редко но метко ...
 
{quote}{login=DimaLulchuk}{date=27.12.2011 02:18}{thema=}{post}чтобы в ячейку А1 копировалось имя файла без расширения{/post}{/quote}БЕЗ расширения хочють :-)
 
Спасибо, все работает.
 
вот так без расширения:  
Sub test()  
Dim f  
On Error Resume Next  
For Each f In CreateObject("Scripting.FileSystemObject").GetFolder("C:\Program Files\WinRAR").Files  
[A1] = Left(f.Name, Len(f.Name) - Len(Split(f.Name, ".")(UBound(Split(f.Name, ".")))) - 1)
Exit For  
Next f  
End Sub
Редко но метко ...
 
Можно чуток укоротить:  
[A1] = Split(f.Name, ".")(0)
 
{quote}{login=Юрий М}{date=27.12.2011 03:22}{thema=}{post}Можно чуток укоротить:  
[A1] = Split(f.Name, ".")(0){/post}{/quote}
 
а если имя файла например "Кн.ига1.xlsx" то что выдаст ?
Редко но метко ...
 
Если фигня написана, то фигню и выдаст :-)
 
[A1] = Left(f.Name, InStrRev(f.Name, ".") - 1)
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=27.12.2011 03:45}{thema=}{post}[A1] = Left(f.Name, InStrRev(f.Name, ".") - 1){/post}{/quote}
 
Ну вот пришел Сергей и все упростил до минимума )  
А у меня зато скобочек больше ))
Редко но метко ...
 
> Ну вот пришел Сергей и все упростил до минимума )  
 
до минимума???  
Упрощать - так весь макрос:  
 
Sub test()  
   f = Dir("C:\Program Files\WinRAR\"): [A1] = Left(f, InStrRev(f, ".") - 1)
End Sub
 
Не так все просто. Если точки нет, будет ошибка.  
Sub test()  
   Dim f, s$, FSO As Object  
   On Error Resume Next  
   Set FSO = CreateObject("Scripting.FileSystemObject")  
   For Each f In FSO.GetFolder("C:\Program Files\WinRAR").Files  
       [A1] = FSO.getbasename(f.Path)
       Exit For  
   Next f  
End Sub
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему
Наверх