我已经创建了一个使用源excel文件的UDF,并将数据作为UDF结果而保留。
但是,即使我在下面的'with'-代码中使用.close方法,源文件也不会关闭。
在使用源文件后关闭它的任何帮助都非常有用,非常感谢!
League \ OAuth2 \ Client \ Provider \ Exception \ IdentityProviderException (400) UnsupportedContentTypeheader.
答案 0 :(得分:0)
如上面的评论中所述,您可以在另一个实例中打开文件(在同一实例中,您的UDF公式调用将不起作用)
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
.DisplayAlerts = False
With .Workbooks.Open(sfilename)
range1 = .Sheets(2).Range("A:B")
If IsError(Application.VLookup(lookupval, range1, 2, False)) Then
If IsError(Application.VLookup(lookupval2, range1, 2, False)) Then
MsgBox "Pair or date does not exist!" 'do not use msgbox but give getex a string => getex = "error"
Else
getex = 1 / Application.VLookup(lookupval2, range1, 2, False)
End If
Else
getex = Application.VLookup(lookupval, range1, 2, False)
End If
.Close
End With
.Quit
End With
另一种可能性是将UDF的结果放在表单中的Sub位置(我会这样做)