Bir dizinin boyutunu öğrenmek

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub testDiziBoyutu()
Dim arr()
ReDim arr(1 To 5)
[COLOR=Red]'DiziBoyutu = ??  '1 dönecek[/COLOR]
Stop
ReDim arr(1 To 5, 1 To 8)
'[COLOR=Red]DiziBoyutu = ??   '2 dönecek[/COLOR]
Stop
ReDim arr(1 To 5, 1 To 8, 1 To 10)
'[COLOR=Red]DiziBoyutu = ??   '3 dönecek[/COLOR]
Stop
'MsgBox "arr dizisi " & DiziBoyutu & " boyutludur"

End Sub
yukarıdaki kırmızı satırlar nasıl düzenlenmelidir?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ilginize teşekkür ederim ama fonksiyonları denediğimde sub or function not defined, yani sun yada fonksiyon tanımlşı değil hatası alıyorum.
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Zannediyorum bu mscorlib (in mscorlib.dll) dosyası ile ilgili olabilir, kütüphane dosyaları ile iligli fazla bilgim yok ama zannediyorum bu dosyayı elde etmek ve en başa da bununla ilgili en başa kod yazmak gerekiyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Zannediyorum bu mscorlib (in mscorlib.dll) dosyası ile ilgili olabilir, kütüphane dosyaları ile iligli fazla bilgim yok ama zannediyorum bu dosyayı elde etmek ve en başa da bununla ilgili en başa kod yazmak gerekiyor.
bilgisi olna arkadaşların yardımını bekliyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bunun için özel bir fonksiyon varmı bilmiyorum ama aşağıdaki gibi bir kullanıcı tanımlı fonksiyonla bulunabilir.

Kod:
Sub testDiziBoyutu()
Dim arr()
ReDim arr(1 To 5)
'DiziBoyutu = ??  '1 dönecek

ReDim arr(1 To 5, 1 To 8)
'DiziBoyutu = ??   '2 dönecek

ReDim arr(1 To 5, 1 To 8, 1 To 10)

'DiziBoyutu = ??   '3 dönecek
 
MsgBox "arr dizisi " & diziboyutsayisi(arr) & " boyutludur"
 
End Sub

Function diziboyutsayisi(dizi)
On Error GoTo 10
If IsArray(dizi) = True Then
For a = 1 To 100
If UBound(dizi, a) > 0 Then c = c + 1
Next
End If
10 diziboyutsayisi = c
End Function
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teşekkür ederim hocam.
 
Üst