通过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议。
ChDrive
和ChDir
都被称为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)
- 使用New-Object打开公式,打开excel文件,使用Invoke-Item不打开公式
- CSV到特定的嵌套JSON
- 为什么input框variables在循环的第一次迭代后切换为空?
- Excel VBA – 不使用相同公式自动填充整个表格列的代码
- 如何使用xlrd从.xlsx文件parsing单元格格式的数据
- Excel 2013函数每次更新时都会返回列中最后12个值的函数?
- 在Excel中,我可以从使用= HYPERLINK(“http://url.com”,“Pretty Name”)函数的外部源(Oracle)获取数据吗?
- macros删除除包含某些文本的行之外的所有行
- 如何将来自2(和更多)行的信息合并到Excel中的1行?