Страницы: 1
RSS
VBA VLOOKUP, Проблема с адресом диапазона
 
Всем здравствуйте. Такая проблема:

Нужно через впр получить данные из csv файла.
Так для записи в ячейку я получаю имя файла (оно же месяц и год), когда дело доходит до строки с формулой VLOOKUP, перед указанным [названием файла]название листа! в excel автоматом прописывается полный путь до файла. Скрин приложил. Как убрать, чтобы было только заданное имя файла без пути?
Код
Dim intPos%, FN, Filename
    FN = Application.GetOpenFilename
    intPos = InStrRev(FN, "\")
    Filename = Left(FN, Len(FN) - 4)
    Filename = Right(Filename, Len(Filename) - intPos)
    Range("D2") = Filename

Range("D4").Formula = "=VLOOKUP(B4,'[февраль 2020.csv]февраль 2020'!$A$2:$D$500,1,0)"
 
Цитата
N N написал:
Такая проблема:
Поменять логин и приложить файл
 
Вить, на мой взгляд, название темы совершенно адекватно вопросу.

Цитата
N N написал:
Нужно через впр получить данные из csv файла.
А ВПР() способна работать и с закрытыми файлами. Поэтому, Excel не верит, что вы вставляете формулу, ссылающуюся в никуда. А поскольку вы путь не указали, то он предполагает, что этот файл CSV лежит там же, где и файл Excel, и вносит свои коррективы.
Так что получается, VBA тут вообще не при делах.
Для того, чтобы вставить ссылку без пути, нужно иметь открытый вновь созданный и не сохраненный файл. С xls это просто, а вот с CSV, боюсь, не прокатит.

PS Пардону прошу
Адекватное название конечно так "VBA VLOOKUP, Проблема с адресом диапазона"
Т.е. именно так, как я его вижу в заголовке темы.
Изменено: RAN - 27.05.2020 19:14:59
 
Самое интересное что вчера вечером я добился того что впр сработал правильно, но я указывал явно как сейчас название файла и листа. Мне нужно чтобы в формулу подставлялись переменные, так как файлов csv много. Начал переделывать на переменные и все поломалось. А теперь и вернуть через явное указание имени файла не получается.

Сейчас запустил с открытым файлом csv, все работает.
 
Nikita N, вернитесь в своё сообщение и удалите то, что Вы ошибочно считаете цитатой.
И запомните: кнопка цитирования не для ответа!
 
Возможно стоит попробовать, открывать файл csv в vba, растягивать формулу на диапазон и сохранять как значение, а не как формулу. Возможен такой вариант?
 
Nikita N, а вот здесь уже  суть вопроса выходит за пределы заявленной темы.
 
VLOOKUP в принципе не работает с закрытыми csv, ибо это по сути не экселевские файлы, это текст.
Страницы: 1
Наверх