VBA打开工作簿,退出代码

我尝试使用“.xlsm”打开一个工作簿

Private Function readFiles(ByVal lv_path As String, ByRef lx_wrkShDes As Worksheet) 'On Error GoTo ErrorHandling Dim lx_objectExcel As New Excel.Application Dim lx_wrkBkSrc As Workbook Dim lx_wrkShSrc As Worksheet Dim lx_shrPathObj As Object Dim lv_shrPath As String Set lx_shrPathObj = CreateObject("scripting.filesystemobject") lv_shrPath = Replace(lx_shrPathObj.GetFile(lv_path).ShortPath, mv_longFilePathHelper, "") Set lx_wrkBkSrc = Workbooks.Open(Filename:=lv_shrPath, ReadOnly:=True) 'Using lx_objectExcel.Workbooks.Open WORKS but not Workbooks.Open 'lx_objectExcel.Workbooks.Open(Filename:=lv_shrPath, ReadOnly:=True) If Not Library.DoesSheetExist(lx_wrkBkSrc, mv_workSheetName) Then GoTo ErrorHandling End If Set lx_wrkShSrc = lx_wrkBkSrc.Sheets(mv_workSheetName) 'Rest of the function End Function 

它打开工作簿并立即退出VBA代码。 我试过这个https://support.microsoft.com/en-us/help/555263 ,但结果相同。

如果我使用Excel的新实例,它不会退出

 lx_objectExcel.Workbook.open('path') 

我不想使用一个新的实例作为粘贴特殊不适合新的实例和打开100s的Workbooks这样消耗很多时间。

更换:

 Workbook.open('path') 

 Workbooks.Open("PathName") 

参照Workbook.Open方法,您的操作的正确语法如下

 Workbooks.Open("WorkbookPath") 

下面的代码完全适合我

 Dim targetWorkbook As Workbook Set targetWorkbook = Workbooks.Open("YourWorkbookPath") 

你没有正确使用它。 如果这仍然不起作用,请确保为您的文件发送正确的path。

试了2 xlsm文件(MASTER和SLAVE)的代码,它工作正常。 Office 2013

 Dim sText As String Dim objWB As Excel.Workbook sText = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value Set objWB = Application.Workbooks.Open(ThisWorkbook.Path & "\SLAVE.XLSM") objWB.Worksheets("Sheet1").Range("A1").Value = sText MsgBox "DONE!"