VBA'da bir varyantın tam sayı olup olmadığını belirlemek için zarif bir çözüm arıyorum. Maalesef, eğer varyant bir dizeden oluşturulmuşsa, ben takılıyorum. İşteVBA'da bir varyantın tam sayı olup olmadığını nasıl belirleyebilirim?
dim v as variant
v = "42"
if v <> round(v) then
msgBox("<>")
end if
ben v olması bekleniyor olurdu, ancak Iletikutusu = varyant bir dize oluşturuldu muhtemelen çünkü açılır yuvarlak (v): Burada küçük bir test senaryo. CDbl çift tipi numarasına herhangi bir veri dönüştürme bir fonksiyondur
if cDbl(v) <> round(cDbl(v)) Then
:
Herhangi bir varyantı ve tüm sayıları gerçekten işlemeniz gerekip gerekmediğini kendinize sormaya değer olabilir. 1000 basamaklı bir dizeden ne haber? Uzun menzilin dışındaki integral çiftler ne olacak? İhtiyacınız olan şeyi tam olarak açıklarsanız ve daha sonra kodu yazarsanız çok daha kolay olacaktır. Aynı problem değil, ama bu cevabı Eric Lippert tarafından Stackoverflow'taki başka bir soruya bakın: http://stackoverflow.com/questions/921180/c-round-up/926806#926806 – jtolle