Excel VBA:GOTO语句的一个非常需要的替代方案

时间:2014-02-01 21:52:17

标签: excel vba excel-vba module goto

我正在创建一个excel vba,大约有20个模块(大约6个已创建并且仍在开发中)。代码运行很长一段时间,因为它将最少6个文件更新为最多1200个文件。这些模块将来需要更新,所以我创建了一个主模块,通过我的每个模块看起来像这样:

Option Explicit

Sub CodeRunner()

Go_NoGo
'Module That decides when to run the Code and Sets the CDate.

CheckLastRunDate
'Module that checks when the code was last successfully Run.

DownloadListFile
'Downloads an updated list.csv file and makes some changes in it daily

 DownloadBRVFile
'Downloads an updated BRV.csv file and makes some changes in it daily

FileUpdater
'Updates multiple files based on Updated BRV.csv and list.csv

'========================================
'And So on many more modules
'========================================

LogWriterModule:
EndofCode

End Sub

我想要做的是,每当调用一个模块时,它应该执行它的功能,如果它找到了一些额外的普通

  • IT应该跳过当前模块中的剩余代码
  • 并转到主模块中的LogWriterModule标签

我完全理解跳过模块不是一个好的程序habbit但是这里这有助于我避免大量数据的污染,之后有人可以手动干预日志的帮助出了什么问题。 我对编程有一般的了解,但这是我的第一个大型excel vba项目 我最初尝试的是我使用GOTO语句在这些单独的模块中调用LogWriterModule但后来才知道标签必须存在于同一模块中... 有没有人知道如何在不使用goto语句的情况下实现这一点而不使用我可能需要在我的Master模块中作为最后手段引入的重复代码? (我有一个想法,但它不是解决我的问题的好方法。比如引入一个标志并在每次调用下一个模块之前检查它...)

0 个答案:

没有答案