通过Word VBA项目使用ChDrive&Chdir for Excel

所以,我有一些问题得到ChDrive和ChDir正确使用Excel.Application.GetOpenFilename。 当我在Excel VBA项目中使用这些命令时,它工作正常:

drive = Split(ActiveDocument.Path, ":")(0) loc = Split(ActiveDocument.Path, ":")(1) ChDrive drive ChDir loc exfile = exApp.GetOpenFilename("Microsoft Excel (*.xl*),*.xl*") Set exBk = exApp.Workbooks.Open(exfile) 

但是,当我从Word项目执行此操作时,它仍然访问默认文件夹(MyDocuments)。

我已经尝试打开excel实例并在运行ChDrive / ChDir命令之前使其可见(如下所示),但无济于事 – GetOpenFilename仍然默认为MyDocuments。

 Dim exApp As Excel.Application Dim exBk As Excel.Workbook Set exApp = CreateObject("Excel.Application") select_workbook: 'user defines Excel workbook to paste into Word.Application.Activate 'Set exBk = exApp.Workbooks.Add drive = Split(ActiveDocument.Path, ":")(0) loc = Split(ActiveDocument.Path, ":")(1) exApp.Visible = True ChDrive drive ChDir loc MsgBox CurDir ' CurDir() = ActiveDocument.Path exfile = exApp.GetOpenFilename("Microsoft Excel (*.xl*),*.xl*") 

有关如何从Word VBA项目设置CurDir for Excel的任何想法?

提前感谢您的任何build议。

ChDriveChDir都被称为Word应用程序,而不是Excel应用程序。

我会build议使用不同types的对话框 – FileDialog而不是GetOpenFileName

尝试像这样(没有完全testing,可能需要一些更改):

 Dim FD As FileDialog Set FD = exApp.FileDialog(msoFileDialogFilePicker) With FD .InitialFileName = ActiveDocument.Path .Show End With Dim exFile As String exFile = FD.SelectedItems(1)