Autor Beitrag
traude
Hält's aus hier
Beiträge: 5


C# (VS 2003)
BeitragVerfasst: Di 22.08.06 07:13 
Hallo,

ist es möglich die Regression in Excel von C# aus zu starten?

Der VDA-Code ist

Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("y-Werte "), _
ActiveSheet.Range("x-Werte"), False, False, , ActiveSheet.Range( _
"Ausgabebereich"), False, False, False, False, , False


Ich habe es schon probiert in C# Code um zu schreiben, doch ich bin kläglich gescheitert.

Wenn es überhaupt möglich ist, wie muss der Code aus sehen?

Gruß traude
traude Threadstarter
Hält's aus hier
Beiträge: 5


C# (VS 2003)
BeitragVerfasst: Mi 23.08.06 09:45 
Hallo,

dank kleiner Hilfen bin ich ein gutes Stück vorran gekommen, doch bekomme ich folgenden Fehler.

Zitat:

( Eine nicht behandelte Ausnahme des Typs 'System.Runtime.InteropServices.COMException' ist in Excel Regression.exe aufgetreten.

Zusätzliche Informationen: Microsoft Excel kann das Makro 'C:\Programme\Office2000\Office\Makro\Analyse\ATPVBAEN.XLA!Regress' nicht finden )




Ich weiß nicht woran es liegt, eventuell an der Pfadangabe?

Hier mein Quelltext.

Gruß Traude
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
using System;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using System.Collections;

.
.
.

//Excel - Instanz erzeugen und sichbar schalten, bzw öffnen
// Freischalten des COM-Objektes mit Marshal.ReleaseComObject nicht nötig

Excel._Application excel = new Excel.ApplicationClass();
excel.Visible = true;


// Arbeitsmappe ohne Vorlage erzeugenn 

Object missing = Missing.Value;
excel.Workbooks.Add(missing);


// Das aktive Workbook referenzieren

Excel.Workbook workbook = excel.ActiveWorkbook;


// Arbeitsmappe erzeugen

if ( workbook.Worksheets.Count == 0)
{
workbook.Worksheets.Add(missing,missing,missing, missing);
}


// Das erste Arbeitsblatt referenzieren

Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];


// A2 bis A6 & B2 bis B6 bechreiben

worksheet.get_Range("A2", missing).Value2 = "2";
worksheet.get_Range("A3", missing).Value2 = "4";
worksheet.get_Range("A4", missing).Value2 = "8";
worksheet.get_Range("A5", missing).Value2 = "16";
worksheet.get_Range("A6", missing).Value2 = "32";

worksheet.get_Range("B2", missing).Value2 = "2";
worksheet.get_Range("B3", missing).Value2 = "4";
worksheet.get_Range("B4", missing).Value2 = "8";
worksheet.get_Range("B5", missing).Value2 = "16";
worksheet.get_Range("B6", missing).Value2 = "32";


// Regression    
            
Excel.Range yValues = (Excel.Range)worksheet.get_Range("A2","A6");
Excel.Range xValues = (Excel.Range)worksheet.get_Range("B2","B6");
Excel.Range output = (Excel.Range)worksheet.get_Range("D2","D6");

            
excel.Run("C:\\Programme\\Office2000\\Office\\Makro\\Analyse\\ATPVBAEN.XLA!Regress", yValues, xValues, falsefalse, Type.Missing, output, falsefalsefalsefalse, Type.Missing, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt