Mi stavo chiedendo se potessi aiutarmi a capire meglio cosa fa .Cells(.Rows.Count,"A").End(xlUp).row
. Capisco la parte prima della parte .End
.Significato di .Cells (.Rows.Count, "A"). End (xlUp) .row
risposta
Viene utilizzato per trovare il numero di righe contenenti dati in un foglio di lavoro che contiene dati nella colonna "A". L'utilizzo completo è
lastRowIndex = ws.Cells(ws.Rows.Count, "A").End(xlUp).row
Dove ws
è un oggetto Foglio di lavoro. Nell'esempio domande si è implicito che la dichiarazione era all'interno di un blocco di With
With ws
lastRowIndex = .Cells(.Rows.Count, "A").End(xlUp).row
End With
ws.Rows.Count
restituisce il numero totale di righe nel foglio di lavoro (1048576 in Excel 2010)..Cells(.Rows.Count, "A")
restituisce il fondo più cellule nella colonna "A" nel foglio di lavoro
Poi c'è il metodo di End
. Il documentation è ambiguo su ciò che fa.
restituisce un oggetto Range che rappresenta la cella alla fine della regione che contiene l'intervallo sorgente
particolare non definisce ciò che una "regione" è. La mia comprensione è che una regione è un intervallo contiguo di celle non vuote. Quindi l'utilizzo previsto è di iniziare da una cella in una regione e trovare l'ultima cella in quella regione in quella direzione dalla cella originale. Tuttavia ci sono più eccezioni per quando non si usa così:
- Se l'intervallo è più celle, userà la regione di
rng.cells(1,1)
. - Se l'intervallo non si trova in una regione o l'intervallo è già alla fine della regione, percorrerà la direzione finché non entrerà in una regione e restituirà la prima cella rilevata in quella regione.
- Se incontra il bordo del foglio di lavoro, restituirà la cella sul bordo del foglio di lavoro.
Quindi Range.End
non è una funzione banale.
.row
restituisce l'indice di riga di quella cella.
Grazie mille! :) – rmdlp
La prima parte:
.Cells(.Rows.Count,"A")
vi manda la riga inferiore della colonna A, che si sapeva già.
La funzione Fine inizia da una cella e quindi, in base alla direzione indicata, procede in tale direzione fino a raggiungere il bordo di un gruppo di celle con testo. Che significa, se si dispone di testo in celle C4: E4 e si digita:
Sheet1.Cells(4,"C").End(xlToRight).Select
Il programma selezionerà E4, la cella più a destra con il testo in esso.
Nel tuo caso, il codice sta sputando la riga dell'ultima cella con del testo nella colonna A. Questo ti aiuta?
[A1].End(xlUp)
[A1].End(xlDown)
[A1].End(xlToLeft)
[A1].End(xlToRight)
è l'equivalente VBA di essere in cella A1 e premendo Ctrl + qualsiasi tasto freccia. Continuerà a viaggiare in quella direzione fino a quando non raggiunge l'ultima cella di dati o se si utilizza questo comando per spostarsi da una cella che è l'ultima cella di dati che percorrerà fino a raggiungere la cella successiva contenente i dati.
Se si desidera trovare l'ultima cella "utilizzata" nella Colonna A, è possibile passare a A65536 (ad esempio, in una cartella di lavoro XL93-97) e premere Ctrl + Su per "eseguire lo snap" sull'ultima cella utilizzata. Oppure in VBA scrivere:
Range("A65536").End(xlUp)
che può essere nuovamente riscritto come Range("A" & Rows.Count).End(xlUp)
per motivi di compatibilità su cartelle di lavoro con numeri di righe diversi.
.Cells(.Rows.Count,"A").End(xlUp).row
penso che il primo punto tra parentesi non dovrebbe essere lì, voglio dire, si dovrebbe scrivere in questo modo:
.Cells(Rows.Count,"A").End(xlUp).row
prima che le cellule, è possibile scrivere il nome del foglio di lavoro, per esempio:
Worksheets("sheet1").Cells(Rows.Count, 2).End(xlUp).row
Il nome del foglio di lavoro non è necessario quando si opera sullo stesso foglio di lavoro.
- 1. Python: significato di end = '' nell'istruzione print ("\ t", end = '')
- 2. Selezionare la prima cella vuota nella colonna F a partire dalla riga 1. (senza utilizzare l'offset)
- 3. DataGridView RowCount vs Rows.Count
- 4. Excel Row Mixup
- 5. UICollectionView registerCell - Blank Cells
- 6. Spazio tra UITableView Cells
- 7. VBA: metodo migliore per copiare i dati da una cartella di lavoro chiusa
- 8. Casing inferiore efficiente in Excel VBA
- 9. TypeError: row is undefined
- 10. Array.Copy sempre row-major?
- 11. scorri per eliminare TableView Row
- 12. Come allineare i duplicati sulle stesse righe in Excel
- 13. - back end front-end
- 14. normalize a row-wise in theano
- 15. Qual è il modo più efficiente/più veloce per scorrere le righe in VBA (excel)?
- 16. JavaFX 8 personalizzato ListView Cells è male
- 17. Pulsante che fa riferimento a riga errata in ex
- 18. Il significato di "EiC"
- 19. ASP.NET gridview row onclick
- 20. Mysql 1 caso Row
- 21. Utilizzo di SpecFlow per test di regressione end-to-end
- 22. primefaces datatable row coloring
- 23. ROW NUMBER() OLTRE
- 24. datagridview row click
- 25. GridView row height
- 26. Freeze DataGrid Row
- 27. jqGrid row alternating background
- 28. Silverlight Datagrid Row Click
- 29. JQgrid set row height
- 30. Il test end 2 end è sufficiente?
Dato un 'With' * qualche oggetto intervallo * presumo? –
prima di '.end', va all'ultima cella possibile della colonna A (quindi suppongo A65535), quindi il' .end (xlup) 'torna indietro finché non trova qualcos'altro che una cella vuota, e infine il' .row' dà la fila di questa cella –