2010-11-02 80 views
1

下面是我的代码,它打开了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字段。

如果简单地复制和粘贴代码是最effecient代码,你能告诉我走开

回答

4

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

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 
+0

哇,似乎很简单。会把这个放在一个大脑屁。非常感谢您花时间帮助! – Waller 2010-11-02 13:06:40

+0

不客气。 – Matt 2010-11-02 13:20:03

0

将这个代码的方法,如果你想更精确放在阶级和阶级它与像

public void mymethod(string currentFilter, bool date2, bool date) 
{ 
a = MonarchObj.SetReportFile(rawdataS10, False) 
openModel = MonarchObj.SetModelFile(freeKidsModel) 
MonarchObj.CurrentFilter = currentFilter 


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

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

每次我看到你使用的是Excel的不同参数。您可以尝试使用数据的另一个表,使这个方法得到在每个时间线,是这样的:

 A   B   C  D 
1 Under60 FreeKidsS10 Date Date2 
2 Under80 FreeKidsS20 DateZ Date3 
3 Over80  FreeKidsS30 DateX Date4 

,你改变你的宏使用的东西,如:

a = MonarchObj.SetReportFile(rawdataS10, False) 
openModel = MonarchObj.SetModelFile(freeKidsModel) 
     MonarchObj.CurrentFilter = 'Sheet2!$A1' 


SummerDateShow = MonarchObj.SetFieldVisible('Sheet2!$D1', False) 
SummerDateHide = MonarchObj.SetFieldVisible('Sheet2!$C1', True) 

ExportTOS = MonarchObj.JetExportTable(saveDir, 'Sheet2!$B1', 0) 
MonarchObj.CloseAllDocuments 

我不知道在确切的代码,但我可以沿着这条线去达到必要的目标

相关问题