Excel-VBA-Excel对象或当前Excel的调用路径。应用

Excel-VBA-Excel对象或当前Excel的调用路径。应用,excel,vba,object,Excel,Vba,Object,关于如何或是否可以调用活动的.xls对象的路径,您有什么想法吗 此代码打开并设置excel对象timeXLS 这是一个for循环,我用它在电脑上循环浏览一些excel工作簿 Code: vFiles = Application.GetOpenFilename("Excel files (*.xls*),*.xls*", Title:="Please select ", MultiSelect:=True) If TypeName(vFiles) = "Boolean" Then Exit Su

关于如何或是否可以调用活动的.xls对象的路径,您有什么想法吗

此代码打开并设置excel对象timeXLS 这是一个for循环,我用它在电脑上循环浏览一些excel工作簿

Code:

vFiles = Application.GetOpenFilename("Excel files (*.xls*),*.xls*", Title:="Please select ", MultiSelect:=True)
If TypeName(vFiles) = "Boolean" Then Exit Sub ' Cancelled
Set timeXLS = CreateObject("Excel.Application")
timeXLS.Visible = True
Set R = Worksheets.Add.Range("A1")


  For iFile = LBound(vFiles) To UBound(vFiles)

    timeXLS.Workbooks.Open vFiles(iFile)

    next
我尝试的这种语法调用了通用excel程序的路径C:\ProgramFilesx86\Microsoft Office\Office14\Microsoft excel

Code:
ThisWorkbook.Sheets("Report").Range("I" & CurrentRow).Value = timeXLS.Path & "\" & timeXLS.Name
此语法生成调试错误,需要424对象

Code:
ThisWorkbook.Sheets("Report").Range("I" & CurrentRow).Value = vFiles(iFile).Path & "\" & vFiles(iFile).Name
非常感谢您在此问题上提供的所有建议或帮助。

应用程序的.Path属性不是您想要的

您已将timeXLS声明为Excel.Application的实例

vFilesiFile.Path

vFiles是数组/变量,而不是对象。将这两种方法结合起来,你就接近了!由于.Path是工作簿对象的成员,请改为尝试:

修改


…=timeXLS.WorkbooksvFilesiFile.FullName

谢谢你,我的朋友。这有很大的帮助。代码可以工作,但是一旦设置第二个excel对象,代码就会中断,生成运行时错误9 ThisWorkbook.SheetsReport.RangeI&CurrentRow.Value=timeXLS.WorkbooksiFile.NameSubscript超出范围错误?检查以确保iFile变量是在timeXLS实例中打开的有效工作簿名称。如果不是这样,那肯定会失败。或者,检查以确保CurrentRow值不是0。最终找到解决方案。请参阅第十篇文章,再次感谢大家建议不要创建新的Excel实例?是的,我通常不建议这样做,但既然你已经有了代码,我只是觉得这是设计的,你想保留一些东西。