所以,我在使用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的任何想法?
提前感谢您提出任何建议。
答案 0 :(得分:0)
对于Word应用程序而不是Excel应用程序,都会调用ChDrive
和ChDir
。
我建议使用不同类型的对话 - 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)