function findLastRowInCol(wks as excel.worksheet, col as long)
dim rng as range
with wks
set rng = .cells(.rows.count, col).end(xlup)
findLastRowInCol = rng.row
end with
end function
aus dem Direkt-Bereich testen:
debug.print findLastRowInCol(thisworkbook.sheets("sheet1"), 5)
Diese Ihnen in der angegebenen Spalte die Zeile der letzten nicht leeren Zelle geben. Beachten Sie, dass dies möglicherweise nicht die zuletzt verwendete Zeile des Arbeitsblatts ist. Wenn Sie eine andere Spalte auswählen, erhalten Sie abhängig von der letzten nicht leeren Zelle der Spalte ein anderes Ergebnis.
Edit: ersetzt Active mit „sheet1“
Edit: Beispielcode in einem anderen Makro zu verwenden, in von einer anderen Quelle einzufügen,
thisworkbook.sheets("sheet1").cells(findLastRowInCol(thisworkbook.sheets("sheet1"), 5), 5).pastespecial paste:=xlAll
Wenn Einfügen aus einer anderen Excel-Tabelle oder die Formatierung abzuzustreifen , können Sie z „XlPasteSpecialValues“
Edited hinzufügen: eine Zeile aus einem anderen Arbeitsblatt einfügen und transponieren, verwenden Sie die oben so weit wie „.pastespecial“ dann ein paar Variationen auf:
.pastespecial paste:=xlpastevalues, transpose:=True
Die einfachste Implementierung ist,
sub PasteToE()
thisworkbook.sheets("sheet1").cells(findLastRowInCol(thisworkbook.sheets("sheet1"), 5),5).pastespecial paste:=xlpastevalues, transpose:=True
end sub
Fügen Sie dem anderen Arbeitsblatt eine Befehlsschaltfläche hinzu, und weisen Sie ihm dieses Makro zu. Wählen Sie Ihren Bereich und kopieren Sie ihn, und klicken Sie dann auf die Schaltfläche.
werde ich einen Versuch geben, aber in Ihrem Code ich nicht überall über Paste aus der Zwischenablage sehen und –
Hinzugefügt einfache Einfügen von Code auf dem Boden umzusetzen. Sie haben nicht angegeben, was Sie einfügen oder wo. Dies beeinflusst, wie Sie Werte transponieren. – Winterknell
Ich weiß nicht, wie Sie Ihren Code in VBA bearbeiten. Ich kopiere Werte aus der Spalte in einem anderen Blatt derselben Arbeitsmappe –