powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как вставить задаваемый путь?
13 сообщений из 13, страница 1 из 1
Как вставить задаваемый путь?
    #34594457
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub ВПР()

    ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-1],'C:\[Книга4.xls]Лист1'!R4C2:R450C25,2,FALSE))=TRUE,0,VLOOKUP(RC[-1],'C:\[Книга4.xls]Лист1'!R4C2:R450C25,2,FALSE))"
      
    ActiveCell.Offset( 1 ,  0 ).Range("A1").Select
End Sub
Значение
Код: plaintext
C:\[Книга4.xls]
должно меняться. Т.е. должно появляться окошко с выбором книги.
Как это сделать?
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34594528
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно взять это за основу
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34594818
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vbaproможно взять это за основу
Не открывается чего-то :)
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34595362
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сокращу немного:
Код: plaintext
1.
2.
3.
4.
Sub ВПР()
    ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-1],'C:\[Книга4.xls]Лист1'!R4C2:R450C25,2,FALSE)"
End Sub
Повторюсь: должно появляться окошко для выбора книги. После выбора книги, её путь автоматически присваивается какой-то стринговой переменной и она вставляется в формулу.
Как это слепить?
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34595572
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetOpenFilename - тебе поможет
Код: plaintext
1.
2.
3.
    ChDrive "F:\"
    ChDir "F:\temp\"
    Fil = Application.GetOpenFilename(" Файлы Excel (*.xls),*.xls",  1 , "Проба")
    If Fil <> False Then MsgBox Fil
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34596098
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь осталось превратить результат типа:
D:\qqq\qqq\qqq\Книга1.xls
в результат типа:
D:\qqq\qqq\qqq\[Книга1.xls]
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34596124
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
  Dim v_Arr() As String, v_File As String, v_FileName As String
  
  v_File = "D:\qqq\qqq\qqq\Книга1.xls"
  v_Arr = Split(v_File, "\")
  v_FileName = v_Arr(UBound(v_Arr))

  Debug.Print Mid(v_File,  1 , Len(v_File) - Len(v_FileName)) & "[" & v_FileName & "]"
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34596811
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем БОЛЬШОЕ СПАСИБО. Результат таков:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub ВПР_full()
    Dim v_Arr() As String
    Dim v_File As String
    Dim v_FileName As String
    Dim sdf As String

 'Выбираем файл с данными    
    v_File = Application.GetOpenFilename(" Файлы Excel (*.xls),*.xls",  1 , "Ищем файлик")

 'превращаем результат вида: D:\qqq\qqq\qqq\Книга1.xls в результат вида: 
 'D:\qqq\qqq\qqq\[Книга1.xls]
    v_Arr = Split(v_File, "\")
    v_FileName = v_Arr(UBound(v_Arr))
    sdf = Mid(v_File,  1 , Len(v_File) - Len(v_FileName)) & "[" & v_FileName & "]"

 'Рассчитываем формулу 
    ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-1],'" & sdf & "Лист1'!R4C2:R450C25,2,FALSE))=TRUE,0,VLOOKUP(RC[-1],'" & sdf & "Лист1'!R4C2:R450C25,2,FALSE))"
      
    ActiveCell.Offset( 1 ,  0 ).Range("A1").Select
 End Sub
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34597070
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lena_####
Код: plaintext
1.
2.
3.
4.
5.
6.
  Dim v_Arr() As String, v_File As String, v_FileName As String
  
  v_File = "D:\qqq\qqq\qqq\Книга1.xls"
  v_Arr = Split(v_File, "\")
  v_FileName = v_Arr(UBound(v_Arr))

  Debug.Print Mid(v_File,  1 , Len(v_File) - Len(v_FileName)) & "[" & v_FileName & "]"


или так:

Код: plaintext
1.
v_File = "D:\qqq\qqq\qqq\Книга1.xls"
Debug.Print Replace(v_File, Dir(v_File ), "[" & Dir(v_File) & "]")
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34599171
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to KL (XL):

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub hgjasd()
Dim v_File As String
Dim jkl As String
v_File = "D:\qqq\qqq\qqq\Книга1.xls"
jkl = Replace(v_File, Dir(v_File), "[" & Dir(v_File) & "]")
Range("A1") = jkl
End Sub

выдаёт:

D:\qqq\qqq\qqq\Книга1.xls
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34599184
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redskyto KL (XL):

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub hgjasd()
Dim v_File As String
Dim jkl As String
v_File = "D:\qqq\qqq\qqq\Книга1.xls"
jkl = Replace(v_File, Dir(v_File), "[" & Dir(v_File) & "]")
Range("A1") = jkl
End Sub

выдаёт:

D:\qqq\qqq\qqq\Книга1.xls

Чтобы работало необходимо чтобы путь и файл реально существовал!
Т.е. путь проверяется а не просто текст обрабатывается.

Если просто текстто можно так

Sub hgjasd2()
Dim v_File As String
Dim jkl As String
v_File = "D:\qqq\qqq\qqq\Книга1.xls"
jkl = Replace(v_File, Split(v_File, "\")(UBound(Split(v_File, "\"))), _
"[" & Split(v_File, "\")(UBound(Split(v_File, "\"))) & "]")
Range("A1") = jkl
End Sub
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34599424
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last Edition

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub ВПР_new()
    Dim v_FileName As String
    Dim sdf As String
  
  v_File = Application.GetOpenFilename(" Файлы Excel (*.xls),*.xls",  1 , "Ищем файлик")
  
  sdf = Replace(v_File, Dir(v_File), "[" & Dir(v_File) & "]")
  
  ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-1],'" & sdf & "Лист1'!R4C2:R450C25,2,FALSE))=TRUE,0,VLOOKUP(RC[-1],'" & sdf & "Лист1'!R4C2:R450C25,2,FALSE))"
  
  ActiveCell.Offset( 1 ,  0 ).Range("A1").Select
End Sub

Thanks for all!
Game over :)
...
Рейтинг: 0 / 0
Как вставить задаваемый путь?
    #34602564
redsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему при перемещении документа с этой формулой меняется и ссылка?
Например, если в исходном варианте получалась формула с ссылкой вида:
D:\xxxxx\[xxxxx.xls]
то при перемещении на Рабочий стол она меняется на:
C:\Documents and Settings\yyyyy\Рабочий стол\xxxxx\[xxxxx.xls]

Соответственно, обновиться не может :(
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как вставить задаваемый путь?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]