Sto cercando una soluzione elegante per determinare se una variante è un numero intero in VBA. Sfortunatamente, se la variante è stata creata da una stringa, sono bloccato. Ecco un piccolo script di test:Come determinare se una variante è un numero intero in VBA?
dim v as variant
v = "42"
if v <> round(v) then
msgBox("<>")
end if
Qui, il Msgbox si apre, probabilmente perché la variante è stato creato da una stringa, anche se mi sarei aspettato di essere v = round (v).
Potrebbe valere la pena chiedersi se è davvero necessario gestire qualsiasi variante e qualsiasi numero intero. Che dire di una stringa di 1000 cifre? Che dire dei Doppi integrali al di fuori della portata di un lungo? Sarà molto più semplice se specifichi esattamente ciò di cui hai bisogno e poi codifichi solo quello. Non è lo stesso problema, ma vedi questa risposta di Eric Lippert a un'altra domanda qui su Stackoverflow: http://stackoverflow.com/questions/921180/c-round-up/926806#926806 – jtolle