Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - Compatibilità di una macro VBA tra diverse versioni di office
Forum - Altri Linguaggi - Compatibilità di una macro VBA tra diverse versioni di office

Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 9:58
Martedì, 12/02/2019
Salve a tutti,

per l'azienda dove lavoro ho creato una macro in un foglio excel in VBA;
l'ho scritta usando la versione 2016 di office, e funziona correttamente.

Il problema è che essa deve essere usata su diversi PC, dove funziona correttamente, tranne su uno, dove da un errore di esecuzione, in particolare nell'istruzione:

Codice sorgente - presumibilmente Plain Text

  1. formattedValue = format(rArea.Columns(posCol).Rows(I).Value, "##0.00")



Cercando un po' in rete, poiché sul PC incriminato c'è una versione di office 2010, ho visto che il problema potrebbe essere la mancanza di una libreria che la macro usa;

confrontando le versioni di Office, abbiamo constatato che la libreria potrebbe essere una di queste:


Visual basic for application
Microsoft Excel 16.0 Object library
Microsoft Office 16.0
OLE Automation


per questioni burocratiche non possiamo installare sul PC in questione la versione 2016 di Office, per cui mi chiedevo se esiste un modo per installare/upgradare le suddette librerie, oppure se esiste un'alternativa alla funzione format che sia compatibile con la versione 2010.

Ringrazio anticipatamente a chi potrà aiutarmi.

Ciao.

PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 10:42
Lunedì, 18/02/2019
Devi verificare la versione di Excel in uso ed agire in base a questa.
Controlla la proprietà Version, esempio:

Codice sorgente - presumibilmente Plain Text

  1. Debug.Print Application.Version



potrai costruire un costrutto decisionale If/Then/End If che esegue una funzione invece di un'altra.


PM Quote