Son bulma konusunda hata VBA hücre
Son hücre değeri bulmak istiyorum, ben kullanın:
Dim last_row As Integer
Dim LastRow As Long
LastRow = Range("E4:E48").End(xlDown).Row
Debug.Print LastRow
Bir hücreye tek bir element koymak yanlış çıktı alıyorum. Ancak hücre içine birden fazla değer verdim mi, çıktı doğru mu? Bunun arkasındaki neden nedir?
CEVAP
NOTBu "bir yazı son satırı bulmak için Correct yol kullanabilirsiniz". dur yapma niyetindeyim Bu da son satır bulma yapmak için, en iyi uygulamaları karşılar. Ve bu yüzden yeni senaryo/bir bilgi karşısında ne zaman bu güncelleme devam edeceğim.
Son satır bulma güvenilmez yollar
Son derece güvenilmez ve bu nedenle asla kullanılmamalıdır olan son satır bulma en yaygın yollarından bazıları.
- UsedRange
- xlDown
- CountA
UsedRangeASLAveri olan son hücreyi bulmak için kullanılacak. Son derece güvenilmez. Bu deney deneyin.
Hücrede türü bir şey A5. Şimdi bu yöntem aşağıda verilen herhangi bir son satır hesaplamak, 5 verecektir. Şimdi renk hücresi A10 kırmızı. Eğer şimdi kod aşağıda herhangi bir kullanımı varsa, hala 5 alacak. Eğer Usedrange.Rows.Count kullanırsanız ne olur? 5 olmayacak.
Burada UsedRange nasıl çalıştığını göstermek için bir senaryo.

xlDown eşit derecede güvenilir değil.
Bu kodu göz önünde bulundurun
lastrow = Range("A1").End(xlDown).Row
Eğer veri olan bir tek hücre (A1) olsaydı orada neler olurdu? Çalışma sayfasındaki son satırı ulaşmadan sona erecek! Hücre A1 seçip basmak gibi bir şeySonundatuşuna basarak ve daha sonraAşağı Okanahtar. Bu da eğer bir aralıktaki boş hücreler varsa, orada size güvenilir olmayan sonuçlar verir.
CountA eğer aralarında boş hücreler varsa, orada yanlış sonuç verecektir, çünkü o da güvenilmez.
Ve bu nedenle bir UsedRange, xlDown CountA kullanımı son hücreyi bulmak için kaçınmalısınız.
Bir sütundaki en Son Satır bulacaksınız
Col E son Satırı bulmak için bunu kullanın
With Sheets("Sheet1")
LastRow = .Range("E" & .Rows.Count).End(xlUp).Row
End With
Rows.Count önce . olduğunu fark ederseniz. Biz genellikle bunu görmezden gelmeyi tercih ediyor. THIS alabilirsiniz, olası bir hata söz konusu. Ben her zaman Rows.Count Columns.Count önce . kullanarak öneriyoruz. Bu soruyu kodu Rows.Count Excel 2003 ve öncesi için 65536 Excel 1048576 2007 ve daha sonra döner, çünkü başarısız olur klasik bir senaryodur. Benzer şekilde Columns.Count döner 256 16384, sırasıyla.
Yukarıdaki aslında bir Excel 2007 1048576 satır da vurguluyor üzerinde olması gerektiğini hep beyan değişken olan tutar satır değeri olarak Long yerine Integer başka sen-ecek almak bir Overflow hata.
Bir sayfasında Son Satırı bulmak
Sayfası Effective son satırı bulmak için bunu kullanın. Application.WorksheetFunction.CountA(.Cells) kullanımına dikkat edin. Bu veriler çalışma ile hücreler varsa, orada hiçbir zaman .Find Run Time Error 91: Object Variable or With block variable not set vermek için gereklidir
With Sheets("Sheet1")
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lastrow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Else
lastrow = 1
End If
End With

8 tablo Internet Explorer hücre genişl...
EÄŸer SERBEST iÅŸ #eÄŸer hata AYIKLAMA C ...
Garip PHP hata: ''t içerik y...
Hata: Varsayılan Etkinlik Bulunamadı...
ExpressJS - er İşlenmeyen hata Olay at...