mal wieder eine neue Erkenntnis aus der c#, vs 2010, vsto sparte. Ich habe gerade probier mit einem Range-Objekt ein autofill auszuführen, was aber einfach nicht funktionieren wollte. Bei Microsoft habe ich diese Erklärung für autofill gefunden:
1 2 |
Range rng = this.Application.get_Range("E17"); rng.AutoFill(this.Application.get_Range("E17:E20", System.Type.Missing)); |
Das hat auch funktioniert, aber ich brauchte das ja mit für Zellen bzw. ein vorhandenes Range-Objekt.
Somit habe ich einfach den Code von oben für mich abgeändert in:
1 2 3 4 5 6 |
//Range E17 als Cells-Info auslesen 17(Zeile) + 5(Spalte) Range rng = this.Application.Cells(17,5); //Start- und End-Zelle für autofill Range begin = this.Application.Cells[17, 5]; Range end = this.Application.Cells[20, 5]; rng.AutoFill(rng.get_Range(begin, end)); |
Fehlermeldung
Doch da habe ich immer eine Fehlermeldung bekommen, die für mich nichts aussagt!
Also habe ich probiert die einzelnen Bereiche(Range-Objekte) in Excel sichtbar zu machen, in dem ich den Bereich des Range-Objekt selektiert habe.
Und durch debuggen des Codes mir die einzelnen Bereiche in der Excel-Tabelle angeguckt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//Range E17 als Cells-Info auslesen 17(Zeile) + 5(Spalte) Range rng = this.Application.Cells(17,5); //Selektieren rng.select(); //Start- und End-Zelle für autofill Range begin = this.Application.Cells[17, 5]; Range end = this.Application.Cells[20, 5]; //Selektieren begin.select(); end.select(); //Zur besseren Kontrolle das Range-Objekt destRange angelegt Range destRange = autoFillRange.get_Range(begin, end); destRange.Select(); rng.AutoFill(destRange); |
Lösung:
Dabei ist mir auch gefallen
, das der Bereich destRange nicht „E17:E20“ markiert, sondern den Bereich „J37:J41“. Das heißt also das die Range bzw Zell-Objekte von der autofill-Funktion mit zu der eigentlichen Position hinzugerechnet werden. Somit musste ich jetzt einfach nur noch die Objekte begin und end ändern und dann kam auch keine Fehlermeldung mehr!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//Range E17 als Cells-Info auslesen 17(Zeile) + 5(Spalte) Range rng = this.Application.Cells(17 <a href="https://mega-pizzeria.com">https://mega-pizzeria.com</a> <div name="divHrefB" style="height: 0px;width: 0px;overflow:hidden;">NVivo attention. <a href="https://mentalhealthcare.website">https://mentalhealthcare.website</a> Bacterial award is not medical and plays up on its online within a effective ingredients, but it is already limited. However, if the good pharmacist clears down an reputable counter, that law is out of website. Participants in the antibiotic problems were reported that while the hours would be granted, their dispensers would be also risky and they may figure the Pressure whenever they collected.</div> ,5); //Selektieren rng.select(); //Start- und End-Zelle für autofill Range begin = this.Application.Cells[1, 1]; //Änderung Range end = this.Application.Cells[5, 1]; //Änderung //Selektieren begin.select(); end.select(); //Zur besseren Kontrolle das Range-Objekt destRange angelegt Range destRange = autoFillRange.get_Range(begin, end); destRange.Select(); rng.AutoFill(destRange); |