2016-12-08 6 views
1

alle Antworten würden sehr geschätzt werden. Meine Frage ist wie folgt:Suchen der zuletzt verwendeten Zelle im Arbeitsblatt und Kopieren der Zeile in ein anderes Arbeitsblatt?

Ist dies der richtige Weg, um die letzte nicht leere Zelle/Zeile meines Excel-Arbeitsblattes zu bestimmen?

xl.Worksheet sh; 
     int lastRow; 
     int fullRow; 

     sh = xlApp.Workbooks.get_Item("myExcelFile").Worksheets.get_Item("MySheet"); 
     fullRow = sh.Rows.Count; 
     lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row; 

Und wenn das in der Tat richtig ist, wie nehme ich meine Zeile und kopieren Sie sie in ein anderes Arbeitsblatt. Um mehr specifict zu sein, die erste leere Zelle der Spalte A. Ich weiß, dass ich einen Befehl verwenden, der so etwas wie diese:

lastRow.EntireRow.Copy(FirstEmptyCell); 

Als Typ int i, es nicht zu meinem anderes Blatt kopieren. Irgendwelche Vorschläge?

Antwort

0
lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row; 

hier lastRow ist ein int so kann man es nicht als ein Objekt auf der nächsten Zeile verwenden:

lastRow.EntireRow.Copy(FirstEmptyCell); // int doesn't have an EntireRow property 

Was Sie können tun ist, um die beiden in einer einzigen Zeile kombinieren:

Excel.Range myLastRow; 
myLastRow = sh.Cells[sh.Rows.Count, 1].End(xl.xlDirection.Up).EntireRow; 

jetzt myLastRow ist die gesamte Zeile, die Sie kopieren möchten.

myLastRow.Copy(destination); 
+0

Wow, danke für die schnelle Antwort und um mir zu helfen. Ich freue mich sagen zu können, dass meine Zeile kopiert wurde und jetzt bereit ist, an mein Ziel verschoben zu werden. Nachdem es voll funktionsfähig ist, werde ich den Code und wie es hier aussieht, veröffentlichen, so dass jeder, der Probleme mit der gleichen Sache hat, ein Beispiel haben könnte, um abzuarbeiten. Nochmals vielen Dank. Ihre Antwort wird auch sehr geschätzt und akzeptiert !!! –

+0

Kein Problem - wenn Ihr Code voll funktionsfähig ist - würde ich vielleicht vorschlagen, es in [Code Review] (http://codereview.stackexchange.com/) zu veröffentlichen, wo Leute Ratschläge und Verbesserungsvorschläge anbieten können :) –

+0

Ich werde sicherlich tun, weil jeder Rat und jede Hilfe sehr geschätzt und nützlich wäre. Das Projekt, an dem ich gerade arbeite, wird im Grunde von VBA-Code auf C# -Code umgestellt, weil ich es als Programm so machen will, dass es keine "Außenelemente" verwendet Es ist mehr oder weniger ein Makro und ich habe ein paar dynamische Elemente darin, und ich habe gekämpft mit dem Finden meiner letzten Zeile dynamisch und setzen/kopieren es :) Sie können nicht vorstellen, wie glücklich ich war, Ihre Antwort zu sehen! –

Verwandte Themen