Farklılıklar var. Variant
'u makinenizde düşük seviyede bulunan ve VBA'ya bir uygulama programlama arabirimine (API) sahip bir şey olarak düşünün. Düşük seviye olan şey VARIANT
ve Windows birçok dilde işlem yapmanıza izin veren çeşitli işlevlerle birlikte gelir; VBA bunlardan biri.
v
, VARIANT
s gibi bir Visual Basic dizisidir, u
tek bir tanesidir.
Farkı belirlemenin bir yolu, vbArray + vbVariant
olarak değerlendirilen VarType(v)
kullanmaktır. VarType(u)
, vbEmpty
değerini değerlendirir. Bunu, atama öncesinde aralık içeriğine test edebilirsiniz.
Özel durumunuzda, Excel-VBA v
'a atandığında (başka bir terim olduğunu düşünmüyorum) korkak bir şey yapıyor: hedef türün bir dizi olduğunu "bilir" ve biraz farklı bir baskı gerçekleştirir . u
ve v
, Excel.Range
'un değerine ayarlanmış olanla aynıdır.
Varyant dizisi olarak bildirimde herhangi bir fayda göremiyorum. – Rory
() işlevi, kodun okunmasıyla ilgili başka birisine yararlı olacak şekilde v kullanımıyla ilgili * niyet * sinyallerinin eklenmesi konusunda yararlı olacak bir argüman oluşturabilirsiniz (ya da daha sonra) –
Eklediğim bir dezavantaj.(), ona boş bir dizi atamaya çalışırken hataya neden olmasıdır. Örneğin, bir işlev bir dizi döndürür, ancak dizi boşsa, v = SomeFunction() bir çalışma zamanı hatasına neden olur, ancak u = SomeFunction() buna neden olmaz. –