Workbooks.Open метод в VBA

Мой скрипт vba в рабочей книге myMacro.xls.Open работает так же, как показано ниже,

 Workbooks.Open Filename:="D:\ExcelMacroProj\myTest.xls", ReadOnly:=True 

Но когда я пытаюсь изменить значение Filename на новый путь, как показано ниже, но все мои действия не сработали. Показать ошибку времени выполнения 1004 .

 Workbooks.Open Filename:="myTest.xls", ReadOnly:=True or Workbooks.Open Filename:="./myTest.xls", ReadOnly:=True or Workbooks.Open Filename:=".\myTest.xls", ReadOnly:=True 

На самом деле myMacro.xls и myTest.xls были помещены в одну папку. Вот почему я хочу перейти в гибкий каталог папок.

как я могу исправить эту проблему? Благодарим за ваше чтение и ответ.

Вы можете попробовать использовать ThisWorkbook.Path чтобы сделать абсолютный путь. Он возвращает путь к папке рабочей книги с макросом (исключая имя файла). Что-то вроде этого должно работать:

 Workbooks.Open Filename:=ThisWorkbook.Path & "\myTest.xls", ReadOnly:=True 

Не забудьте включить обратную косую черту, так как путь рабочей книги не заканчивается одним.

Filename относится к текущему каталогу Excel (который отличается от каталога, в котором открыт открытый документ).

Вы меняете текущий каталог, используя ChDir "x:\new\path" .

Но то, что вы на самом деле хотите сделать, это:

 Workbooks.Open Filename:=EnsureSlash(ThisWorkbook.Path) & "myTest.xls", ReadOnly:=True 

, где EnsureSlash – это ваша настраиваемая функция, которая добавляет обратную косую черту ( \ ) в конец строки, если она еще не существует (потому что ThisWorkbook.Path заканчивается косой чертой, когда путь является корневым каталогом, а не иначе).

  • Как я могу убить процессы диспетчера задач с помощью кода VBA?
  • Показывать временную метку при изменении ячейки
  • Должен ли я использовать ключевое слово Call в VB / VBA?
  • Как вставить изображение в Excel в указанной ячейке с помощью VBA
  • Поиск excel с двумя поисковыми словами (множественный поиск) с использованием макроса vba
  • В чем разница между VBA 6.0 и VBA 7.0?
  • Как добавить Drop Down List после вставки новой строки в VBA
  • Есть ли способ взломать пароль в проекте Excel VBA?
  • Функция Excel VBA работает в Visual Basic, но не работает в рабочем листе
  • Макрос для экспорта таблиц MS Word в листы Excel
  • В Excel VBA, как проверить, полностью ли загружена веб-страница?
  • Interesting Posts

    Проверка значения null перед ToString ()

    Как добавить два числа без использования ++ или + или другого арифметического оператора

    Ошибка: «ссылка на объект требуется для нестатического поля, метода или свойства …»

    Как выпустить указатель из boost :: shared_ptr?

    Могу ли я отключить автоматический вход в Windows 10 домой?

    Может ли вирус ввести через Ubuntu и повлиять на Windows при двойной загрузке?

    Как я могу назвать код .NET с Java?

    Ошибка Crystal Report с IIS – (bobj не определено, отчет Crystal не отображается)

    Как сравнить число с номером в другом столбце и получить соответствующее значение

    Массив или список в Java. Что быстрее?

    Является ли X11 стандартным приложением для отображения на Mac OS X?

    Могу ли я улучшить проверку регулярного выражения для действительных доменных имен?

    Жирные модели, тощие controllerы и шаблон проектирования MVC

    Как устранить медленный жесткий диск?

    Инициализация свойства списка без «нового списка» вызывает исключение NullReferenceException

    Давайте будем гением компьютера.