• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

For x = 2 To [a65536].End(3).Row nedir?

Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Kod:
For x = 2 To [a65536].End(3).Row

Bu kod tam olarak anlamı nedir acaba?

A sütunuda 65536. satırdan A2 ye kadar yukarı doğru dolu hücrelerimi sayıyor,
yoksa A2 den başlayarak Aşağıya doğru mu dolu hücreleri sayıyor?
Doğrusu hangisi acaba?
 
merhaba
A sütunda son dolu hücreye kadar döndürüyor
 
Merhaba,

A2 den A sütunun son dolu hücresine kadar olan bir döngüyü söylüyor.

[A65536].end(3).row un Excel karşılığı :

A65536 da iken End tuşuna basıp çektikten sonra Yukarı Ok'a bas demek.
Bu durumda yukarı doğru hareketle ilk dolu hücreyi bulur. Bunu siz deneyebilirsiniz.
 
Excel 2003 versiyonunda 65536 satır var.
yani bu tür bir yöntemde en alttaki satırdan başlayarak üste doğru her hücreyi kontrol ediyor ve ilk dolu hücreyi buluyor.

En üstten 10 satır dolu desek 65526 hücreyi kontrol ettikten sonra bize 10 hücrenin dolu olduğunu söyleyecek.

Programın çalışmasında yavaşlama yaparmı?
Bunun yerine Yukarıdan başlayarak en son boş hücre bulma kullanılsa nasıl olur ve formülü nedir.?

Bu iki yöntem arasında nasıl bir fark olabilir?
 
Selamlar,

Ne yapmak istediğinizi açıklarsanız doğru çözümü önerebiliriz. Son dolu hücreyi bulmanın çok çeşitli yolları vardır. Ama sizin tablo yapınıza hangisi uygun bunu bulabilmemiz için örnek bi dosya eklerseniz daha faydalı olacaktır.
 
Selamlar,
Ama sizin tablo yapınıza hangisi uygun bunu bulabilmemiz için örnek bi dosya eklerseniz daha faydalı olacaktır.

Sayın uzmanım tamda benim araştırdığım konu buydu.
Hangi dosyamda hangi yöntemi kullanmak.

Bazı verilerim 100 satır kimisi 500 veya daha fazla.

En hızlı nasıl çalışır.

Not: Donanım özelliği yüksek bilgisayarlar için bu fark edilemeyebilir, ancak eski model bilgisayarlarda bu çok açık şeçik görülüyor.
Kurumum için tasarladığın programları diğer kurumlardaki mutemet arkadaşlarda kullanıyor ve az önce bahsettiğim fark ortaya çıkıyor.
 
Merhabalar,

Normal şartlarda, Excel sheet'ine kayıtlı bir liste (dizi) nin okunması için en tasarruflu döngü başlangıcı, sizin yazdığınız kod satırıdır.

Şöyle açıklayalım.

Dizileri okuyabilmek ve üzerinde işlem yapabilmek için en basit anlamda; dizinin nerede başladığını ve nerede bittiğini bilmelisiniz.

Başlangıç yerinin bulmak çoğu zaman kolaydır. Örneğin A1, A2 gibi ...

Ama listeye hergün/her an bir veri ilave edildiğinide, nerede bittiğini bulabilmek güçtür. Çünkü heran için bir büyüme sözkonusudur.

Belirttiğiniz şu komut "For x = 2 To [a65536].End(3).Row"; 2 satırdan başlayarak en son dolu hücreye kadar işlem yapma komutudur.

Bilgisayarda işlenmesi (en azından Excel'de) hiç de güç değildir.

Dizinin başladığı yeri sabitlemişsiniz.. bu güzel. Bittiği yerini ise; Excel kendi halleder.

Şöyle ki;

cursor/imleç; Excel'in bilinen en son sınır satırına gider. bu sınır satır 2003 versiyonu için 65536'dır.

65536'dan sonra; end(3) veya end(xlup) komutu ile cursor/imleç'in zıplamasını sağlarsınız. Yani, 65536, 65535, 65534 .... gibi tek tek hücreler kontrol edilmez. Kısaca imleç zıplar. Böylelikle, sizin düşündüğünüz gibi, binlerce kere işlem yapıp son dolu hücre bulunmaz. Zıplamayla, hemencecik son dolu satır bulunur.

Onun için, sadece bu satırı kullanmakla işlem süresi uzamaz. Gönül rahatlığı ile kullanabilirsiniz.

sizi kasacak nokta, başlangıcı ve sonu bilinen dizinin büyüklüğü (hacmidir) Ama bu da, sorduğunuz sorunun dışındadır.

Umarım açıklayıcı olmuştur.​
 
Süper olmuş hocam shift ettiğini ben de anlayamadıydım kodun kendinden teşekkürler detaylı anlatımınız için
 
Teşekkürler. Güzel bir açıklama olmuş.
 
Geri
Üst