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

时间:2014-03-18 18:47:37

标签: excel vba ms-word word-vba

所以,我在使用ChDrive&amp ;;时遇到了一些问题。 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的任何想法?

提前感谢您提出任何建议。

1 个答案:

答案 0 :(得分:0)

对于Word应用程序而不是Excel应用程序,都会调用ChDriveChDir

我建议使用不同类型的对话 - FileDialog代替GetOpenFileName

尝试这样的事情(未经过全面测试,可能需要进行一些更改):

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)