Workbooks.Open Method in VBA

前端 未结 2 1364
既然无缘
既然无缘 2020-11-29 13:29

My vba script in myMacro.xls Workbooks.Open Method work well as below,

Workbooks.Open Filename:=\"D:\\ExcelMacroProj\\myTest.xl         


        
相关标签:
2条回答
  • 2020-11-29 14:02

    Filename is relative to the current Excel directory (which is different from the directory in which an opened document is).

    You change the current directory by using ChDir "x:\new\path".

    But what you actually want to do is:

    Workbooks.Open Filename:=EnsureSlash(ThisWorkbook.Path) & "myTest.xls", ReadOnly:=True
    

    , where EnsureSlash is your custom function that appends a backslash (\) to the end of the string, if it's not already there (because ThisWorkbook.Path ends with a slash when the path is the root directory, and doesn't otherwise).

    0 讨论(0)
  • 2020-11-29 14:14

    You might try using ThisWorkbook.Path to make an absolute path. It returns the folder path of the workbook running the macro (excluding the filename). Something like this should work:

    Workbooks.Open Filename:=ThisWorkbook.Path & "\myTest.xls", ReadOnly:=True
    

    Make sure to include a backslash, since the workbook path doesn't end with one.

    0 讨论(0)
提交回复
热议问题