PDA

View Full Version : Visual basic su excel


lorenzuccio
27-01-2021, 08:14
Ciao a tutti, vediamo se qualcuno mi riesce ad aiutare. Ho un programma che mi trasferisce una tabella mysql su un foglio di excel. Per fare questo uso la funzione :

foglioExcel.Cells(r, 27).Characters().Text = (Trim(data_informix.Tables("Contenitore").Rows(c).Item("variabile").ToString))

Purtroppo però excel mi interpreta quella colonna come testo ed essendo numeri ogni volta va convertito. Cosa sto sbagliando esiste una funzione analoga per far capire a excel che si tratta di un numero?

Ho provato
foglioExcel.Cells(r, 27).Value = (Trim(data_informix.Tables("Contenitore").Rows(c).Item("variabile").ToString))

ma non cambia

Grazie grazie

Kaya
27-01-2021, 08:41
La butto lì.
In fondo al tutto hai un "toString".
Quindi se non c'è modo per fare un "toFloat" potresti provare a fare un cast
CDouble( (Trim(data_informix.Tables("Contenitore").Rows(c).Item("variabile").ToString)))


Non ho idea se funzioni però

lorenzuccio
27-01-2021, 09:41
Mi da errore su CDouble :

Gravità Codice Descrizione Progetto File Riga Stato eliminazione
Errore BC30451 'CDouble' non è dichiarato. Potrebbe essere inaccessibile a causa del livello di protezione.

Kaya
27-01-2021, 14:53
Scusa dovrebbe esser Clng ( https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/functions/type-conversion-functions#clng-example )

Domanda: è una cosa che hai trovato ma non hai fatto tu, giusto?

lorenzuccio
27-01-2021, 16:14
Scusa ma non ho capito la domanda.

Ora mi da errore : Cast non valido dalla stringa "" al tipo 'Long'

Kaya
28-01-2021, 08:57
La domanda è che se tu avessi scritto il programma, capiresti la banalità del messaggio di errore che hai postato.

Comunque la funzione giusta da usare è Long.Parse() (effettivamente è vero, c'è da fare un parsing e non un cast)

lorenzuccio
28-01-2021, 09:05
Risolto

basta indicare come segue:

foglioExcel.Cells(r, 27).value = Val((Trim(data_informix.Tables("Contenitore").Rows(c).Item("variabile").ToString)))