引用运行时错误时未找到excel文件

引用运行时错误时未找到excel文件,excel,vba,outlook,Excel,Vba,Outlook,我试图运行宏,但当引用我已经设置好的excel文件时,会出现运行时错误并突出显示引用我路径的文件。我几乎可以肯定这个路径是正确的,因为我转到了excel文件的属性并复制了位置 Set xlWB = xlApp.Workbooks.Open(strPath) ”获取Excel设置 enviro=CStr(环境(“用户档案”)) '工作簿的路径 Debug.Print strPath=enviro&“\Documents\multipliers.xls” 出错时继续下一步 Set xlApp=G

我试图运行宏,但当引用我已经设置好的excel文件时,会出现运行时错误并突出显示引用我路径的文件。我几乎可以肯定这个路径是正确的,因为我转到了excel文件的属性并复制了位置

Set xlWB = xlApp.Workbooks.Open(strPath)

”获取Excel设置
enviro=CStr(环境(“用户档案”))
'工作簿的路径
Debug.Print strPath=enviro&“\Documents\multipliers.xls”
出错时继续下一步
Set xlApp=GetObject(,“Excel.Application”)
如果错误为0,则
Application.StatusBar=“正在打开Excel源,请稍候…”
设置xlApp=CreateObject(“Excel.Application”)
bXStarted=True
如果结束
错误转到0
'打开工作簿以输入数据
设置xlWB=xlApp.Workbooks.Open(strPath)
设置xlSheet=xlWB.Sheets(“测试1”)
'处理消息记录

您的文件是
.xlsx
文件,而不是代码中的
.xls
。更改以下行:

strPath = enviro & "\Documents\multipliers.xls"
致:


您的文件是
.xlsx
文件,而不是代码中的
.xls
。更改以下行:

strPath = enviro & "\Documents\multipliers.xls"
致:

Private Sub-doingstuff()
Dim xlWB作为工作簿
出错时继续下一步
Set xlApp=GetObject(,“Excel.Application”)
如果错误为0,则
Application.StatusBar=“正在打开Excel源,请稍候…”
设置xlApp=CreateObject(“Excel.Application”)
bXStarted=True
如果结束
错误转到0
strPath=Environ(“USERPROFILE”)&“\Desktop”&“\”和“Book2”&“.xlsm”
设置xlWB=工作簿。打开(strPath)
端接头
这对我来说很好。

Private Sub-doingstuff()
Dim xlWB作为工作簿
出错时继续下一步
Set xlApp=GetObject(,“Excel.Application”)
如果错误为0,则
Application.StatusBar=“正在打开Excel源,请稍候…”
设置xlApp=CreateObject(“Excel.Application”)
bXStarted=True
如果结束
错误转到0
strPath=Environ(“USERPROFILE”)&“\Desktop”&“\”和“Book2”&“.xlsm”
设置xlWB=工作簿。打开(strPath)
端接头

这对我来说很好。

strPath=enviro&“C:\Users\ltorres\Documents\multipliers.xls”创建了一个类似于“C:\Users\ltorres\C:\Users\ltorres\Documents\multipliers.xls”@gizlmier的字符串。我已经从strPath=enviro&中删除了C:\Users\ltorres\“C:\Users\ltorres\Documents\multipliers.xls,但Set xlWB=xlApp.Workbooks.Open(strPath)上仍有错误。如果打开(strPath),则您可能缺少
文档之前的\before
,为了消除疑问,为什么不编写
Debug.Print strPath
,然后检查即时窗口以查看编写的内容。这和你认为应该的相符吗?如果没有,请更正。@Rory我已经编辑了我的文章,说明我的代码现在看起来如何,但仍然不走运,而且我还使用了Debug.Print,我在即时窗口“strPath=enviro&”C:\Users\ltorres\Documents\multipliers.xls上得到了一个错误'创建如下字符串'C:\Users\ltorres\C:\Users\ltorres\Documents\multipliers.xls'@gizlmier我已从strPath=enviro和'C:\Users\ltorres\Documents\multipliers.xls中删除了C:\Users\ltorres\Documents,但在Set xlWB=xlApp.Workbooks.Open(strPath)上仍有错误那么您可能缺少了\before
文档
,为了消除疑问,为什么不编写
Debug.Print strPath
,然后检查即时窗口以查看所编写的内容。这与您认为应该编写的内容是否匹配?如果不匹配,请更正。@Rory我编辑了我的帖子,了解我的代码现在看起来如何,但仍然不走运,我还使用了Debug.Print,我在即时窗口上得到了一个False良好的观察,现在我得到了一个不同的错误,即“无法获取工作簿类的打开属性”调试此行集xlWB=xlApp.Workbooks.Open(strPath)您是否已将xlWB声明为
工作簿
?例如,
将xlWB设置为工作簿
我已将xlWB设置为Dim对象良好的观察结果,现在我收到另一个错误,即“无法获取工作簿类的打开属性”在此行集上调试xlWB=xlApp.Workbooks.Open(strPath)您是否已将xlWB声明为
工作簿
?例如
将xlWB设置为工作簿
我已将xlWB设置为对象复制并粘贴调试。Print strPath=enviro&“\Documents”&“\”和“multipliers.xlsx”我在设置xlWB=xlApp.Workbooks.Open(strPath)复制并粘贴调试时仍遇到调试错误。Print strPath=enviro&“\Documents”“&”\“&”multipliers.xlsx“我在Set xlWB=xlApp.Workbooks.Open(strPath)上仍然收到一个调试错误
strPath = enviro & "\Documents\multipliers.xlsx"
 Private Sub doingstuff()
      Dim xlWB As Workbook
      On Error Resume Next
      Set xlApp = GetObject(, "Excel.Application")
      If Err <> 0 Then
          Application.StatusBar = "Please wait while Excel source is opened ... "
     Set xlApp = CreateObject("Excel.Application")
     bXStarted = True
 End If
 On Error GoTo 0
 strPath = Environ("USERPROFILE") & "\Desktop" & "\" & "Book2" & ".xlsm"
 Set xlWB = Workbooks.Open(strPath)
 End Sub