2010-03-10 95 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