2010-03-10 2 views
1

C#을 사용하여이 Access VBA 코드를 복제하려고하지만이를 수행 할 수 없습니다. 다른 사람이 전에 이것을 시도하고 도움을 줄 수 있는지 궁금합니다. 엑셀 템플릿C#을 통해 Excel Named Ranges를 설정 하시겠습니까?

oWB.Worksheets ("사인 오프"). 범위 ("rgSignOffRecTemplate"). 값이 g_TemplatePath & "Signoff_Rec.XLT"

rgSignOffRecTemplate는 "정의의 이름"입니다 = 그 I 편지 쓰려고 애 쓰고있어.

많은 도움에 감사드립니다.

+0

오류/예외 stacktrace? – shahkalpesh

+0

오류/예외 없음 ... 값을 설정하는 방법을 모르므로 – Chapax

+0

이 검색 사용해보기 : http://stackoverflow.com/search?q=write+excel+[c%23] 일하는 것이 더 좋습니다. 엑셀이 아니라 엑셀이 아닌 엑셀. – Fionnuala

답변

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 a ton ... 이걸 시험해 봅시다. – Chapax

+0

이것은 완벽하게 .. 일했습니다. AMissico – Chapax

+0

이것은 훌륭한 ... oldie하지만 goodie ... – gotmike