I've ditemukan metode ini untuk mencari data terakhir yang berisi baris pada sheet:
ws.Range("A65536").End(xlUp).row
Ada metode yang sama untuk menemukan data terakhir yang berisi kolom dalam lembar?
Terima kasih.
Banyak cara untuk melakukan hal ini. Yang paling dapat diandalkan adalah menemukan.
Dim rLastCell As Range
Set rLastCell = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
MsgBox ("The last used column is: " & rLastCell.Column)
Jika anda ingin menemukan kolom terakhir digunakan dalam baris tertentu yang dapat anda gunakan:
Dim lColumn As Long
lColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
Menggunakan rangkaian digunakan (lebih handal):
Dim lColumn As Long
lColumn = ws.UsedRange.Columns.Count
Menggunakan bekas range tidak akan bekerja jika anda tidak memiliki data di kolom A. Lihat di sini untuk masalah lain dengan menggunakan berbagai:
Lihat di Sini mengenai reset digunakan range.
Aku tahu ini sudah tua, tapi saya've diuji ini dalam banyak cara dan itu sudah't membiarkan saya turun lagi, kecuali seseorang yang dapat memberitahu saya sebaliknya.
Nomor baris
Row = ws.Cells.Find(What:="*", After:=[A1] , SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Kolom Surat
ColumnLetter = Split(ws.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Cells.Address(1, 0), "$")(0)
Kolom Nomor
ColumnNumber = ws.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Cobalah menggunakan kode setelah anda aktif lembaran:
Dim J as integer
J = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Jika anda menggunakan sel-Sel.SpecialCells(xlCellTypeLastCell).Baris
hanya, masalah akan bahwa xlCellTypeLastCell
informasi tidak akan diperbarui, kecuali jika salah satu melakukan "Simpan file" tindakan. Tapi menggunakan UsedRange
akan selalu update informasi secara realtime.
Saya pikir kita dapat memodifikasi UsedRange
kode dari @Readify's jawaban di atas untuk mendapatkan yang terakhir digunakan kolom bahkan jika awal kolom yang kosong atau tidak.
Jadi, ini lColumn = ws.UsedRange.Kolom.Menghitung
dimodifikasi untuk
ini lColumn = ws.UsedRange.Kolom + ws.UsedRange.Kolom.Count - 1
akan memberikan hasil yang dapat diandalkan selalu
?Sheet1.UsedRange.Column + Sheet1.UsedRange.Columns.Count - 1
Di atas garis Hasil 9
di jendela segera.
Berikut ini's sesuatu yang mungkin berguna. Memilih seluruh kolom didasarkan pada sebuah baris berisi data, dalam hal ini saya menggunakan 5 baris:
Dim lColumn As Long
lColumn = ActiveSheet.Cells(5, Columns.Count).End(xlToLeft).Column
MsgBox ("The last used column is: " & lColumn)