vba - 编写这样的重复代码的最佳方法是什么?

标签 vba excel

下面是我的代码,它打开了一个 Monarch 实例,并使用 Monarch 执行了一些操作(Monarch 是一种数据挖掘工具)

我必须重复下面的代码,每次只需更改几个参数,有没有办法以编程方式做到这一点?我想知道最有效的方法。

a = MonarchObj.SetReportFile(rawdataS10, False)
openModel = MonarchObj.SetModelFile(freeKidsModel)
            MonarchObj.CurrentFilter = "Under 60"


    SummerDateShow = MonarchObj.SetFieldVisible("Date2", False)
    SummerDateHide = MonarchObj.SetFieldVisible("Date", True)

ExportTOS = MonarchObj.JetExportTable(saveDir, "FreeKidsS10", 0)
MonarchObj.CloseAllDocuments

我正在更改的部分示例是“60 岁以下”“FreeKidsS10”以及日期和日期 2 字段。

如果简单地复制和粘贴这段代码是最有效的代码,你可以告诉我走开

最佳答案

您可以创建一个将变量字段作为参数的过程,然后在要复制和粘贴的任何地方调用该过程。该方法的签名将是这样的:

    Public Sub DataMiningMethod(ByVal modelFile as object, _
                                ByVal currentFilter as String, _ 
                                ByVal date1 as Boolean, _
                                ByVal date2 as Boolean, _
                                ByVal exportTableName as String)

因此整个方法看起来像这样:
Public Sub DataMiningMethod(ByVal modelFile as object, _
                            ByVal currentFilter as String, _ 
                            ByVal date1 as Boolean, _
                            ByVal date2 as Boolean, _
                            ByVal exportTableName as String)

    a = MonarchObj.SetReportFile(rawdataS10, False)
    openModel = MonarchObj.SetModelFile(modelFile )
            MonarchObj.CurrentFilter = currentFilter 


    SummerDateShow = MonarchObj.SetFieldVisible("Date2", date2 )
    SummerDateHide = MonarchObj.SetFieldVisible("Date", date1 )

    ExportTOS = MonarchObj.JetExportTable(saveDir, exportTableName , 0)
    MonarchObj.CloseAllDocuments

End Sub

关于vba - 编写这样的重复代码的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077648/

相关文章:

javascript - 单击 VBA 脚本中的 Javascript 确认按钮

excel - 如何使用 VBA for Excel for MacOS 创建文本文件

vba - 自定义字符串反转顺序 - 配对 2 位数字

excel - 如何在执行时设置动态数组大小?

VBA 文本到具有 ""分隔符的列

VBA:多个动态添加按钮的事件

excel - 在 Excel for Mac 2016 中注释/取消注释 VBA 代码

vba - Excel VBA : Delete row if Column A contains a number within the string

javascript - 使用不带选项值的 Excel VBA 设置 javascript 输入值

vba - 嵌套宏 : Scope: how to exit all?