Страницы: 1
RSS
Замена пути к файлу через макрос самостоятельным выбором
 
Добрый день. Такая ситуайция.

Необходимо при обновлении таблицы менять в некоторых(выделенных) его колонках пути к источнику путем находжения и замены.
Есть уже часть макроса, но замена не происходит. Замена просходит, если Replacement:="C:\text" вручную указать путь к файлу
более подробно в файле.
Помогите, пожалуйтса
Изменено: rmaximus - 28.07.2014 16:10:06
 
как я понял....
Изменено: Sanja - 28.07.2014 17:16:26
Согласие есть продукт при полном непротивлении сторон
 
Sanja,
отлично. спасибо за помощь. я думал что дело в макросе, а дело в том, что excel в формуле использует в имени файла квадратные скобки...
вы в этом разбираетесь. буду благодарен за помощь)

через эту команду
Код
 strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1) 
я получаю путь к файлу например
С:\main.xlsx

и этим путем нужно заменить путь в формуле, который подписан так:
С:\[main1.xlsx]sheet1
в формуле прописываются скобки квадратные.
и замену не произвести.
есть ли у вас идеи?
 
Как вариант на доделку:

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [G1]) Is Nothing Then Exit Sub
    Set FSO = CreateObject("Scripting.FileSystemObject")

    On Error Resume Next
    'only allow the user to select one file
    Set oSh = ActiveSheet
    Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
    'make the file dialog visible to the user
    intChoice = Application.FileDialog(msoFileDialogOpen).Show
    'determine what choice the user made
    If intChoice <> 0 Then
        'get the file path selected by the user
        strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
        Set TheFile = FSO.Getfile(strPath)
        MsgBox TheFile.parentfolder.Path & "\[" & TheFile.Name & "]"

        '        MsgBox "You replace <" & [G1] & "> with <" & strPath & ">"
        '       oSh.Range("tol[[look]:[rem]]").Replace What:=[G1], Replacement:=strPath
    End If
End Sub
 
Изменено: Hugo - 28.07.2014 18:50:17
 
Цитата
rmaximus пишет:
есть ли у вас идеи?
Есть.
Если используете макросы, то зачем такие извращения с формулами? Делайте нужные вычисления в макросе и выводите результат куда нужно.
Опишите лучше что Вам необходимо в принципе.
Согласие есть продукт при полном непротивлении сторон
 
Hugo,
вы производите замену и выдаете ее через MsgBox. А как сделать эту же замену, только присвоить например тому же TheFile или другой переменной, чтобы потом использовать Replacement, если так можно, конечно.
Спасибо
Изменено: rmaximus - 27.08.2014 00:17:56
 
Код
переменная=TheFile.parentfolder.Path & "\[" & TheFile.Name & "]" 
 
Hugo,
спасибо большое. как всегда выручаете!!
Страницы: 1
Наверх