我有一个程序可以打开许多 Excel 工作簿并将所有这些工作簿中的数据合并到目标工作簿中。合并后,它对数据进行一些转换(使用自定义逻辑将列转置为行),然后使用查找数据添加更多列。
我有以下代码
Sub consolidateFiles()
On Error GoTO ErrorHandler
processFiles
transform
addLookupData
Exit Sub
ErrorHandler:
Debug.Print Err.Number & " = " & Err.Description & ", Source = " & Err.Source
End Sub
Sub processFiles()
'Here I open all the files in the directory and copy and paste into the target workbook.
'If there is an error here, I would like to know the file that caused the error
'and I would like to proceed to the next file after logging the error
End Sub
Sub transform()
'Here I transform some of the data from column to year.
End Sub
Sub addLookupData()
'Here I add some new columns by looking up the data in another sheet in the target workbook. Here the lookups can return error
End Sub
我想知道在我的代码中添加错误处理的良好编程实践是什么。现在,我有一个全局错误处理程序,它记录错误并继续执行程序。为我从主过程调用的 3 个子过程中的每一个添加错误处理是否是个好主意?
我阅读了有关使用未记录的 ERL 来获取错误行的信息。我们如何在 VBA 编辑器中添加行号?
这是我在 VBA 中的第一个程序。我做过很多 Java 编程,但是错误处理范式非常不同。因此,我想向有经验的 VBA 程序员学习我可以遵循的良好实践。
我已经阅读了这篇优秀的文章,该文章链接到与 SO 中的 VBA 错误处理相关的问题之一: