Birçok dilde bir nesnenin yinelenebilir olup olmadığını kontrol etmek mümkündür, bunu VBA için nasıl yapabilirim?Değerin yinelenebilir olup olmadığını kontrol edin vba
Function isIterable(obj As Variant) As Boolean
On Error Resume Next
Dim iterator As Variant
For Each iterator In obj
Exit For
Next
isIterable = Err.Number = 0
End Function
Ama bir yerleşik veya daha iyi bir yaklaşım olmadığını merak:
Deneyebilirim?
Not değil, bir' Her 'için (önemli performans nedenleriyle). Çağıran kod, bu varyantı yerine "IsArray" ile test etmelidir. –
Ancak, yinelenebilirliği test etmek için listedeki ilk öğeyi yinelediğinden (şimdi bir kelime!), O kadar da önemli değil, Mat'sMug. – FreeMan
@FreeMan değil * bu * işlevi - ama eğer bir kod bir "For Her" döngüsü ile yinelenip yinelenemeyeceğini bulmak için bu işlevi çağırıyorsa ve işlev bir dizi alır ve "evet sorun yok" diyorsa, o zaman Çağıran kodun, her ne olursa olsun "objesi" için bir "Her" döngüsüne dalılacağını varsaymak makul görünmektedir. Ve eğer bu bir dizi ise, o zaman kanlı verimsiz. –