我试图从工作簿中读取一些数据,以便在活动工作表中设置一些值。
Dim wbRegistro As Workbook
Dim wsRisorsaMese As Worksheet
Dim path, sRegistro As String
path = "C:\Users\Marco\Documents\sikelia\finanza agevolata\PON MISE\rendicontazione\"
sRegistro = "ORX.Y_Timesheet_Presenze_Sikelia.xlsm"
On Error Resume Next
Set wbRegistro = Workbooks(sRegistro)
If Err <> 0 Then
Err = 0
Set wbRegistro = Workbooks.Open(path & sRegistro)
End If
Workbooks.Open
返回Err=0
,但变量wbRegistro
仍为Nothing
,并且工作簿不可访问。
我想这很简单,但是我不知道该怎么解决。
TIA
答案 0 :(得分:0)
错误9仅在此处出现(Set wbRegistro = Workbooks(sRegistro)
行上的不是,这将是另一个错误):
On Error Resume Next
由于在On Error GoTo 0
之后,因此通常应忽略该错误。如果执行中断,则问题不在代码中,而在您的VBIDE选项中。
确保已选择“打破未处理错误”:
确保在End If
之后有{{1}},否则“继续执行下一个”对于该过程范围的其余部分仍然有效(并且您当然不希望这样做)。
答案 1 :(得分:0)
我可能遇到了问题:我忘了说代码在isAlways(eqs,'Unknown','false')
内部,而不是Function
内部,并且网络上有很多类似的问题。
Sub
根本无法在Workbooks.Open
内部使用,除非有人知道不同的地方。
答案 2 :(得分:-1)
您为什么要使用变量?如果没有,这将是一种方法:
On Error Resume Next
Set wbRegistro = Workbooks(sRegistro)
If Err <> 0 Then
Err = 0
Set wbRegistro = Workbooks.Open("C:\Users\Marco\Documents\sikelia\finanza agevolata\PON MISE\rendicontazione\ORX.Y_Timesheet_Presenze_Sikelia.xlsm")
End If
如果与路径无关,则您可能没有适当的访问权限。