Страницы: 1
RSS
Получить адрес на файл убрав ThisWorkbook.Path
 
Доброго времени суток ребят

Подскажите пожалуйста с таким вопросом
Я получаю в текстбокс командой Application.GetOpenFilename ссылку на файл , вот так
Код
UserForm1.TextBox3.Value = Application.GetOpenFilename
получаю путь "C:\Users\fanat\Desktop\Новая папка\Новая папка\1.jpg" ,
где "C:\Users\fanat\Desktop\Новая папка"  это путь где лежит сам проект , то есть ThisWorkbook.Path , как изменить код на получение ссылки на файл чтобы в текстбокс выводился только путь до файла без ThisWorkbook.Path, то есть из данного примера нужно чтобы  ,грубо говоря , было примерно так ( отображу математически , программно не знаю как это сделать ) :

UserForm1.TextBox3.Value = Application.GetOpenFilename - ThisWorkbook.Path  = "\Новая папка\1.jpg" , получаем ссылку на файл , отнимаем от этой ссылки корневой путь проекта , получаем голую ссылку на файл  
 
В моем понимании это выглядит так , задаем текстбокс как строку , thisworkbook.path  как переменную , затем ищем в этой строке эту переменную ,находим , удаляем , но знания мне не позволят сделать подобного (  
 
Код
x=Application.GetOpenFilename
y=ThisWorkbook.Path
ссылка=right(x, len(x)-len(y))
 
Можно как-то так:
Код
Sub t_160()
Dim strS As String
strS = "C:\Users\fanat\Desktop\Новая папка\Новая папка\1.jpg"
strS = right(strS, Len(strS) - InStrRev(strS, "\", InStrRev(strS, "\") - 1) + 1)
End Sub
Кому решение нужно - тот пример и рисует.
 
Цитата
fanat написал: получаем голую ссылку на файл
Код
Sub Base_Name()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
fOpen = Application.GetOpenFilename
MsgBox "Имя файла: " & FSO.GetBaseName(fOpen) & _
    "." & FSO.GetExtensionName(fOpen)
End Sub
Согласие есть продукт при полном непротивлении сторон
 
ThisWorkbook.Path - это не путь к той книге, которую выбрали в диалоге!
Но как частный случай - оно может и совпасть.
Страницы: 1
Наверх