16/11/2023 - SirJo ha scritto:
Per ora ho risolto facendo un Select Case trattando i tipi di dati più comuni (Integer, String, Date, Double, Single)
Essendo il numero di overload abbastanza limitato, il Select Case può fare al caso tuo perché non sono molte le casistiche da gestire.
16/11/2023 - SirJo ha scritto:
Lo strano è che facendo un CType verso un Integer non dia errore visto che la firma della funzione vuole un Double
Un valore Integer è totalmente compatibile con Double in quanto il primo è un sottoinsieme del secondo e la conversione non presuppone la perdita di dati. E' del tutto normale. Il contrario ovviamente richiede una conversione esplicita, per ovvi motivi legati a questo aspetto.
16/11/2023 - SirJo ha scritto:
ma mi piacerebbe capire se c'è un sistema per farlo in poche righe
Se fosse C#, si potrebbe memorizzare il valore proveniente dalla cella in una variabile di tipo dynamic: questo abilita un “late binding” e una risoluzione dell'overload corretto in base al tipo del valore determinato a runtime (dal runtime). :)
Con Visual Basic la questione è più complicata: puoi approfondire in questa pagina.