首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VBA中跟踪400错误?

如何在VBA中跟踪400错误?
EN

Stack Overflow用户
提问于 2017-05-25 15:40:03
回答 1查看 232关注 0票数 0

我找不到错误在哪里。拉取动态文件名的类似代码在另一个选项卡中工作。

代码语言:javascript
复制
Sub MonthlyBCRCPL()

    Dim filePath As String
    Dim CardsRCPLWb As Workbook
    Set CardsRCPLWb = ActiveWorkbook
    filePath = CardsRCPLWb.Sheets("BCRCPL").Range("A1").Value

    'Optimize Code
    Call OptimizeCode_Begin

    Const FlashFolder As String = "\\apacdfs\SG\GCGR\GROUPS\ASEAN\Dashboard\Cards\Flash\"
    Flashname = Format(CardsRCPLWb.Sheets("ASEAN - CARDS, RCPL").Range("C2").Value, "YYYYMMDD")
    Flashname = "ASEAN SD Regional Dashboard - " & Flashname & ".xlsx"
    Flashpath = FlashFolder & Flashname
    Dim FlashWb As Workbook
    Set FlashWb = Workbooks.Open(Flashpath)
    If FlashWb Is Nothing Then MsgBox "SD Flash File does not exist": Exit Sub
EN

回答 1

Stack Overflow用户

发布于 2017-05-25 23:21:03

考虑在子例程中使用handling the error,并让它发出一条消息。然后,正确地继续/跳过/退出剩余的代码,甚至在异常期间从内存中释放对象。这是VBA (以及一般编程)中的最佳实践。

我怀疑找不到路径,可能是网络UNC,文件命名无效,例如使用了特殊字符,或者尝试打开时工作簿不存在:

代码语言:javascript
复制
Sub MonthlyBCRCPL()
   On Error Goto ErrHandle:
   ...code...

ExitSubBlock:    
   Set CardsRCPLWb = Nothing
   Set FlashWb = Nothing
   Exit Sub

ErrHandle:
   Msgbox Err.Number & " - " & Err.Description, vbCritical, "RUNTIME ERROR"
   Goto ExitSubBlock
   ' Resume Next       
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44174974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档