2010-11-02 118 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 

我不知道在確切的代碼,但我可以沿着這條線去達到必要的目標

相關問題