Ich hab in einer Excel-Datei ein Ribbon-Button eingefügt. Dieser soll mit markierten Zellen etwas machen. Wie bekommt man denn die markierten Zellen? Ich möchte nicht statisch arbeiten mit "A1:A2"
private void button1_Click(object sender, RibbonControlEventArgs e)
{
Microsoft.Office.Interop.Excel.Worksheet _sheet = Globals.Tabelle1.Application.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
Microsoft.Office.Interop.Excel.Range _range;
if (null != _sheet)
{
_range = _sheet.get_Range("A1:A2", System.Type.Missing);
System.Array myvalues = (System.Array) _range.Cells.Value;
double[] d = myvalues.Cast<double>().ToArray();
double r = d[0]*d[1];
_range = _sheet.get_Range("B2", System.Type.Missing);
_range.Value2 = r;
}
}
Hallo,
ich war eigentlich der Meinung es gäbe eine Property / Funktion welche dir genau dies liefert, finde sie aber nicht. Dennoch habe ich mal ein kleines Makro geschrieben, welches die Aufgabe übernimmt:
Sub test()
Dim rng As Range
Dim sc As String
Dim ec As String
For Each rng In Selection
If sc = "" Then
sc = Replace(rng.Address, "$", "")
Else
ec = Replace(rng.Address, "$", "")
End If
Next rng
If ec = "" Then
MsgBox sc
Else
MsgBox sc & ":" & ec
End If
End Sub
Musst denn noch nach c# portieren...
hth
Hurby
Die Welt hat genug für jedermanns Bedürfnisse, aber nicht für jedermanns Gier.
Hallo digi333,
Selection
ist kein Befehl in C#, sondern der Name der Collection, über die in der foreach
-Schleife iteriert wird.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hab ich gerade nach langer Suche selber gefunden.
Range range = (Range) sheet.Application.Selection;