Необходимо при обновлении таблицы менять в некоторых(выделенных) его колонках пути к источнику путем находжения и замены. Есть уже часть макроса, но замена не происходит. Замена просходит, если Replacement:="C:\text" вручную указать путь к файлу более подробно в файле. Помогите, пожалуйтса
Sanja, отлично. спасибо за помощь. я думал что дело в макросе, а дело в том, что excel в формуле использует в имени файла квадратные скобки... вы в этом разбираетесь. буду благодарен за помощь)
и этим путем нужно заменить путь в формуле, который подписан так: С:\[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, вы производите замену и выдаете ее через MsgBox. А как сделать эту же замену, только присвоить например тому же TheFile или другой переменной, чтобы потом использовать Replacement, если так можно, конечно. Спасибо