2015-07-10 2 views
0

MS Excel 2010 VBA - обучая себя автоматизировать, столкнувшись с стеной. Я использую VBA для извлечения необработанных данных из одной книги и подключаю их к учебнику анализа.
Пример - исходные данные хранятся в столбце G листа в файле с именем что-то .csv извлечь имена файлов и лист, добавьте «G» через другие шаги, и я назначен файл & лист & G для переменной, поскольку имя файла данных никогда не совпадает. Файл анализа содержит макрос.Используйте имя файла как часть диапазона

Это прекрасно работает, если имя файла и листа: «[REPORT.csv] ОТЧЕТ!»

RptName ="[REPORT.csv]REPORT!G" 
PulledData = Range(RptName & rawdatarow) 

Но это не работает, если имя файла и листа «[873686.0-05.csv] 873686.0-05!» или похожие.

RptName = "[873686.0-05.csv]873686.0-05!G" 
PulledData = Range(RptName & rawdatarow) 

ЛЮБАЯ ПОМОЩЬ БОЛЬШО ОПРЕДЕЛЕНА !!

+1

«Не работает» может означать много вещей. Есть ли сообщение об ошибке? Что такое сообщение об ошибке? –

+0

Пожалуйста, не используйте тег [** macros **] (http://stackoverflow.com/tags/macros/info) для MS Office/VBA. –

+0

К сожалению, ошибка во время выполнения '1004': метод 'Range' объекта '_Global' не выполнен – Didact

ответ

0

вам нужны одинарные кавычки вокруг ссылок, содержащих математические символы или другие специальные символы, такие как пробелы.

Вы должны изменить

RptName = "[873686.0-05.csv]873686.0-05!G" 

в

RptName = "'[873686.0-05.csv]873686.0-05'!G" 

Сингл цитируемый версия будет работать, даже если нет специальных символов, так что было бы самым простым способом пойти на все случаи , вместо того, чтобы пытаться выяснить, где вы должны использовать котировки

+0

Вот и все! Спасибо! – Didact

Смежные вопросы