Discussion:
AutoFilter in Excel einfügen
(zu alt für eine Antwort)
Andre Grumbach
2006-09-08 10:01:52 UTC
Permalink
Hallo zusammen,
ich verusche gerade verzeweifelt einen AutoFilter in Excel über C#
einzufügen.
Leider will das nicht so ganz klappen.

Wenn ich den Makro Recorder in Excel mitlaufen lasse, reicht hier die
Methode
AutoFilter (jedoch keine Parameter).

In C# benötigt die Methode jedoch Parameter, aus diesem Grund bekomme ich
hier nur die Drop Down Buttons angezeigt, kann jedoch nichts auswählen.

Wenn ich in dem Excelsheet sogar irgend eine Zelle entferne, wird auto. der
Filter wieder gelöscht.

Hat jemand eine Idee, wie ich mit C# in ein Excel Sheet einen Filter
einbaue, mit dem ich alle Einträge unter diese Spalte auswählen kann (im
Prinzip wie Daten->Filter->AutoFilter)

Derzeit geh ich wie folgt vor:
Microsoft.Office.Interop.Excel.Range rg2 =
(Microsoft.Office.Interop.Excel.Range)sheet.Cells[1, "A"];
rg2.EntireRow.AutoFilter("1", Type.Missing,
Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd, Type.Missing,
true);

Hoffe dies hat schon jemand gemacht und kann mir sagen was ich falsch mache,

Danke,
Andre
Frank Dzaebel
2006-09-08 18:04:13 UTC
Permalink
Hallo Andre,
ich verusche gerade verzweifelt einen AutoFilter in Excel über C# einzufügen.
Leider will das nicht so ganz klappen.
War trotzdem schon fast richtig.

using Sheet = Microsoft.Office.Interop.Excel.Worksheet;
using Excel = Microsoft.Office.Interop.Excel;

/// ...

/// <summary>Type.Missing (für Default-Parameter)</summary>
private object mis = Type.Missing;

// Aufruf dann:
Range rg2 = (Range)sheet.get_Range("A1", mis);
rg2.AutoFilter(1,mis, XlAutoFilterOperator.xlAnd,mis,true);


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Andre G.
2006-09-08 21:10:24 UTC
Permalink
Ah Ok.
Wenn ich den Filter nicht auf die komplette Reihe setze, sonden nur auf die
einzlnen Zellen funktioniert es.

Danke,
Andre
Post by Frank Dzaebel
Hallo Andre,
ich verusche gerade verzweifelt einen AutoFilter in Excel über C#
einzufügen. Leider will das nicht so ganz klappen.
War trotzdem schon fast richtig.
using Sheet = Microsoft.Office.Interop.Excel.Worksheet;
using Excel = Microsoft.Office.Interop.Excel;
/// ...
/// <summary>Type.Missing (für Default-Parameter)</summary>
private object mis = Type.Missing;
Range rg2 = (Range)sheet.get_Range("A1", mis);
rg2.AutoFilter(1,mis, XlAutoFilterOperator.xlAnd,mis,true);
ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Lesen Sie weiter auf narkive:
Loading...