2013-12-16 28 views
7

Ho lavorato con SQL e Excel Macro, ma non so come aggiungere testo a una cella.Aggiunta di testo a una cella in Excel tramite VBA

Desidero aggiungere il testo "01/01/13 00:00" alla cella A1. Non posso semplicemente scriverlo nella cella perché la macro cancella prima il contenuto del foglio e successivamente aggiunge le informazioni.

Come si fa in VBA?

+0

individuare la riga che cancella il contenuto e modificarlo. oppure usa 'Range (" A1 "). NumberFormat =" @ "' e poi 'Range (" A1 ") =" 01/01/13 00:00 "' –

+0

@mehow è meglio di entrambe le risposte; uno di questi è mio. – Bathsheba

+0

@Bathsheba +1 guys –

risposta

14

Range("$A$1").Value = "'01/01/13 00:00" lo farà.

Nota la citazione singola; questo annullerà la conversione automatica in un tipo di numero. Ma è quello che vuoi davvero ? Un'alternativa sarebbe formattare la cella per prendere un valore di data-ora. Quindi rilascia la citazione singola dalla stringa.

+2

+1 per grandi menti che pensano allo stesso modo - ma tu eri un po 'più veloce mentre aggiungevo la spiegazione della notazione '[A1]'. – Floris

+0

Il testo va bene, ma grazie, proverò entrambi nel caso. – Phil

+0

Questo non funziona per me .. funziona per alcune celle dove aggiungo alcuni numeri, ma non per aggiungere testo ad alcuni .. è un foglio di lavoro protetto ma posso inserire manualmente il testo nelle celle .. quale potrebbe essere il problema che la macro fallisce? Ho appena usato Range ("$ D $ 2"). Value = "'test" –

9

Si potrebbe fare

[A1].Value = "'O1/01/13 00:00" 

se davvero intenzione di aggiungerlo come testo (si noti l'apostrofo come primo carattere).

Il [A1].Value è abbreviazione VBA per Range("A1").Value.

Se si desidera inserire una data, si potrebbe invece fare (ordine modificata con grazie a @SiddharthRout):

[A1].NumberFormat = "mm/dd/yyyy hh:mm;@" 
[A1].Value = DateValue("01/01/2013 00:00") 
+1

+1 per la notazione che ho sempre dimenticato. – Bathsheba

+0

Il testo va bene perché sto usando questo come modello per formattare i timestamp nella tabella SQL. Grazie. – Phil

+0

Attenzione che l'apostrofo sarà lì come un vero personaggio. SQL potrebbe non piacere. – Floris

2

È necessario utilizzare Range e Valu e funzioni.
Range sarebbe la cella in cui si desidera che il testo che si desidera
Value sarebbe il testo che si desidera in quella cella

Range("A1").Value="whatever text" 
Problemi correlati