Поскольку уровень API 23 существует getContext()
, но если вы хотите поддерживать более старые версии, вы можете использовать getActivity().getApplicationContext()
, пока я по-прежнему рекомендую использовать версию поддержки Fragment
, которая является android.support.v4.app.Fragment
.
Вы можете попробовать использовать 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
заканчивается косой чертой, когда путь является корневым каталогом, а не иначе).