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!"