UsedRange.Zählung Zählung falsch
Zusammenfassung: ich bin dabei, eine Reihe von Daten aus einem Blatt und fügen es in ein anderes, aber das Blatt wäre eine tägliche Art von Sache, wo neue Daten eingegeben unter alten Daten.
Problem: Auf jede neue Strecke, 7 ist konsequent Hinzugefügt, um die UsedRange.Count
. Zum Beispiel: auf einem laufen die UsedRange.Count
7; das nächste mal Laufe ich durch die Funktion, die zählen, werden am 14.
Was ich Suche: Warum ist das der Fall und gibt es eine Möglichkeit zu helfen UsedRange
genauer
-Ich habe die gesamte Funktion für Verweise Willen.
Function eftGrabber()
Dim usedRows As Integer
Dim i As Integer
ChDir "\\..."
Workbooks.Open Filename:= _
"\\...\eftGrabber.xlsm"
usedRows = Sheets("EFT").UsedRange.Count
Windows("Data").Activate
Sheets("DataSheet").Range("A11").EntireRow.Copy
Windows("eftGrabber").Activate
Sheets("EFT").Range("A" & usedRows + 1).Select
ActiveSheet.Paste
i = usedRows
Do 'THIS LOOP DELETES BLANKS AFTER POSTING NEW LINES
Range("A" & i).Select
If Range("A" & i) = "" Then
ActiveCell.EntireRow.Delete
End If
i = i - 1
Loop Until i = 1
Windows("eftGrabber").Activate
ActiveWorkbook.Save
Windows("eftGrabber").Close
End Function
Lassen Sie mich wissen, wenn ich habe keine wichtigen details. Vielen Dank im Voraus!
Mike, sollten Sie immer vermeiden Sie die Verwendung von usedrange. Statt finden, die Letzte Zeile und verwenden, die für das einfügen. Finden Sie unter diesem link finden Sie die Letzte Zeile. stackoverflow.com/questions/11169445/...
InformationsquelleAutor Mike Kellogg | 2012-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern:
usedRows = Sheets("EFT").UsedRange.Count
:
usedRows = Sheets("EFT").Range("A" & Sheets("EFT").Rows.Count).End(xlUp).Row
Wobei "A" geändert werden können, je nachdem welche Zeile, die Sie wollen zählen Sie die Gesamtzahl der Spalten.
Besteht die Gefahr, in mit
UsedRange
weil es Faktoren, die in solchen Dingen und formatierte Zellen ohne Daten und andere Dinge, die Ihnen unerwartete Ergebnisse, wie wenn Sie erwarten, dass Ihre Daten im Range("A1"), aber es ist wirklich beginnt, die in einem anderen Bereich!Ich allerdings sagen, dass, Wenn Sie wirklich wollen, verwenden Sie
UsedRange
im code oben ist immer noch falsch, um die Zeilen. Verwenden Sie diese anstelleUsedRange.Rows.Count
zu erhalten oder die letzten, absoluten Zelle des UsedRange verwendenUsedRange.SpecialCells(xlCellTypeLastCell).Row
.Rows
Teil. Das ist wahrscheinlich, warum.InformationsquelleAutor Scott Holtzman
Diese zwei Linie zaubern
Für weitere Informationen besuchen Sie die Seite von Microsoft
http://msdn.microsoft.com/en-us/library/office/ff196157.aspx
InformationsquelleAutor Hari Das
Danke für die Diskussion...
.UsedRange.Rows.Count
und.UsedRange.Columns.Count
funktionieren, vorausgesetzt, es ist etwas in die Zelle A1. Ansonsten müssen die SpecialCells-Lösung.Hoffe, das ist hilfreich.
InformationsquelleAutor Harold