Страницы: 1
RSS
Как заменить имя файла на выбранный в диалоговом окне
 
Добрый день, форумчане!
Есть задача заменить в формуле имя файла на другое, например:
В ячейке A1 стоит формула "='C:\123\[блаблабла.xls]Выручка'!$AF$8" по кнопке выбора исходного файла необходимо заменить формулу на "='В:\321\[блаблабла_2.xls]Выручка'!$AF$8"
Пробовал сделать так:
Код
Dim SourceFile As String
SourceFile = Application.GetOpenFilename(, , "Выберите исходный файл")
Range("B6").Replace What:="С:\123\[блаблабла.xls]", Replacement:=SourceFile, LookAt:=2
В итоге получается формула ='В:\321\[блаблабла_2.xlsВыручка]блаблабла_2'!$AF$8"
Помогите решить данную проблему
 
Что даже куда копать никто не подскажет?
 
Борис, здравствуйте!
1. добавьте перед 3ей строкой MsgBox SourceFile — так вы увидите, что содержится в переменной перед заменой
2. менять формулу при использовании макроса это очень неправильно - может поэтому желающих нет
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
В принципе, все не так печально должно быть:
Код
Dim SourceFile As String, s$
SourceFile = Application.GetOpenFilename(, , "Выберите исходный файл")
If SourceFile <> "False" Then 'если не нажата кнопка Отмена
    s = Dir(SourceFile, 16) 'получаем только имя файла
    s = Replace(SourceFile, s, "[" & s & "]")
    Range("B6").Formula = Replace(Range("B6").Formula, "C:\123\[блаблабла.xls]", s)
End If
ну или исходный вариант замены(если не в одной ячейке надо замену делать:
Код
Dim SourceFile As String, s$
SourceFile = Application.GetOpenFilename(, , "Выберите исходный файл")
If SourceFile <> "False" Then 'если не нажата кнопка Отмена
    s = Dir(SourceFile, 16) 'получаем только имя файла
    s = Replace(SourceFile, s, "[" & s & "]")
    Range("B6").Replace What:="C:\123\[блаблабла.xls]", Replacement:=s, LookAt:=2
End If
Изменено: Дмитрий(The_Prist) Щербаков - 13.07.2020 15:37:30
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо, Дмитрий! То, что доктор прописал!
Страницы: 1
Наверх