2011-11-25 14 views
39

Ho una colonna "durata" in un foglio Excel. Il suo formato di cella cambia sempre — Voglio convertire la durata da minuti a secondi, ma a causa della formattazione della cella mi dà sempre risposte diverse.Come modificare il formato di una cella in testo usando VBA

Stavo pensando che prima di eseguire la conversione avrei potuto convertire quel formato di cella in testo in modo che lo considerasse come valore di testo e non provasse a formattarlo automaticamente.

Attualmente sto copiando tutti i dati in Blocco note e quindi salvandolo sul foglio Excel per rimuovere tutto il formato precedente. C'è un modo per automatizzare l'impostazione della formattazione di una cella in testo usando VBA?

+3

"Il formato della cella che cambia sempre" ?? Per favore mostraci un esempio. –

risposta

72

Per rispondere alla tua domanda diretta, che è:

Range("A1").NumberFormat = "@" 

O

Cells(1,1).NumberFormat = "@" 

Tuttavia, Suggerisco di fare cambiare il formato a ciò che si desidera visualizzare in realtà. Ciò consente di conservare il tipo di dati nella cella e utilizzare facilmente le formule della cella per manipolare i dati.

7

Bene questo dovrebbe cambiare il formato in testo.

Worksheets("Sheetname").Activate 
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select 
Selection.NumberFormat = "@" 
+16

Non è necessario attivare o selezionare prima di modificare NumberFormat - basta usare qualcosa come Sheets (1) .Columns (1) .NumberFormat = "@" – aevanko

2

Un punto: è necessario impostare la proprietà NumberFormat PRIMA di caricare il valore nella cella. Avevo un numero di nove cifre che veniva ancora visualizzato come 9.14E + 08 quando il NumberFormat veniva impostato dopo il caricamento della cella. L'impostazione della proprietà prima di caricare il valore ha reso il numero di apparire come volevo, come testo dritto

O:

Potrebbe provare un adattamento automatico prima.
Excel_Obj.Columns ("A: V"). EntireColumn.AutoFit

Problemi correlati