2010-03-10 97 views
1

我想使用C#複製此Access VBA代碼,但無法這樣做。 想知道是否有其他人已經嘗試過,並可以提供幫助。通過C#設置Excel命名範圍?

oWB.Worksheets( 「簽收」),範圍( 「rgSignOffRecTemplate」)。值= g_TemplatePath & 「Signoff_Rec.XLT」

rgSignOffRecTemplate是一個 「定義的名稱」 中的Excel模板,我試圖寫信給我。

非常感謝您的幫助。

+0

任何錯誤/異常,stacktrace? – shahkalpesh 2010-03-10 12:20:03

+0

沒有錯誤/異常...因爲我只是不知道如何設置值 – Chapax 2010-03-10 12:30:26

+0

試試這個搜索:http://stackoverflow.com/search?q=write+excel+[c%23]工作很安全從Excel,而不是Excel通過Access。 – Fionnuala 2010-03-10 12:40:51

回答

5
private void ThisWorkbook_Startup(object sender, System.EventArgs e) 
    { 
     Excel.Name oName; 
     Excel.Range oRange; 

     //'using name 
     oName = ExcelWorkbook1.Globals.ThisWorkbook.Names.Item("rgSignOffRecTemplate", missing, missing); 
     oName.RefersToRange.Value2 = "here"; 

     //'using range 
     oName = this.Names.Item("rgSignOffRecTemplate", missing, missing); 
     oRange = oName.RefersToRange; 
     oRange.Value2 = "here i am"; 

     //'direct access 
     this.Names.Item("rgSignOffRecTemplate", missing, missing).RefersToRange.Value2 = "here i am again"; 

     DisplayWorkbookNames(); 

    } 

    private void DisplayWorkbookNames() { 
     for (int i = 1; i <= this.Names.Count - 1; i++) { 
      Globals.Sheet1.Range["A" + i.ToString(), missing].Value2 = this.Names.Item(i, missing, missing); 
     } 
    } 
+0

Thx一噸...讓我試試這個 – Chapax 2010-03-11 08:27:37

+0

這工作完美..感謝噸AMissico – Chapax 2010-03-11 09:12:43

+0

這工作很好...老人,但好東西... ... – gotmike 2016-09-06 21:41:20