2011-12-20 2 views
7

Esempio:Come aggiungere virgolette in una stringa letterale di codice

Dim a As String 
a = 1234,5678,9123 

voglio aggiungere le doppie virgolette letterali alla variabile a

Previsto in uscita:

a = "1234,5678,9123" 

Come faccio formattare la stringa in modo tale che quando la stampo abbia delle doppie virgolette attorno ad essa?

+0

possibile duplicato di [Escape double quote in VB string] (http://stackoverflow.com/questions/4835691/escape-double-quote-in-vb-string) – GSerg

+0

Questo è solo nelle fonti VB? O c'è qualcosa di più qui? La domanda ovvia è perché non puoi semplicemente scrivere questo? Puoi fornire più contesto - questo codice che hai bisogno di refactoring? Di quante istanze stiamo parlando anche qui? Tutte le variabili sono dichiarate come "Dim a as string"? Quali altri vincoli ci sono? –

+1

Possibile duplicato di [Escape double quote in VB string] (https://stackoverflow.com/questions/4835691/escape-double-quote-in-vb-string) – DaveInCaz

risposta

22

Se si desidera includere " in una stringa, alimentazione "" in cui si desidera inserire la citazione. Così il vostro esempio dovrebbe leggere ...

a = """1234,5678,9123""" 
6
a = """1234,5678,9123""" 

o

a= """" & a & """" 
+0

@MattWilko Lo fa se 'a' viene digitato come stringa come da OP. Se comunque usano una variabile numerica o letterale, il '+' dovrebbe essere '&', o il valore passato a 'CStr()'. – Deanna

+0

@MattWilko Scusa :) Ho aggiornato la risposta per usare '&' comunque. – Deanna

14

Le risposte attuali sono corrette e valide, ma a volte il seguente può migliorare la leggibilità:

a = Chr$(34) & "1234,5678,9123" & Chr$(34) 
+1

Non ho votato, ma non è più leggibile! Ci si aspetta che tutti gli sviluppatori conoscano l'intero set di caratteri ASCII? Crea una costante e assegnagli quel valore; quindi, usa semplicemente la costante – UnhandledExcepSean

+3

Bene, ho solo detto * può * - solo per dare un'altra opzione all'OP.E non ho detto che questa era la migliore pratica. Puoi trovare il set di caratteri ASCII [qui] (http://www.asciitable.com/) - quindi non devi ricordarlo. –

+3

+1 Vedo Chr (34) dappertutto, non so quale sia il problema. – JimmyPena

-2

ho usato il metodo (34), Chr $ in questo modo:

Sub RunPython() 
    Dim scriptName As String 
    Dim stAppName As String 
    scriptName = ActiveWorkbook.Path & "\aprPlotter.py" 
    stAppName = "python.exe " & Chr$(34) & scriptName & Chr$(34) 
    Debug.Print stAppName 
    Call Shell(stAppName, vbHide) 
End Sub 

stavo usando lo stesso percorso per lo script Python come cartella di lavoro Excel, per mantenere più facile per gli utenti. Ho provato le citazioni per 45 minuti prima di aver trovato questo thread. Quando i percorsi provengono da luoghi di lavoro attivi (specialmente quelli con spazi in Windows), penso che questo sia un metodo preferito. Speriamo che questo aiuti qualcun altro.

7

Per rendere Chr $ (34) più leggibile:

Dim quote as string 
quote = Chr$(34) 
a = quote & "1234,5678,9123" & quote 

Questo rende più facile per ottenere il numero corretto di "simboli in tutto il mondo ed è leggibile

0


Non c'è bisogno di aggiungere qualsiasi tipo di. funzioni complicate basta usare seguente esempio per inserire single nel casella di testo o ricco casella di testo.

Dim dquot="""" 
TextBox1.AppendText("Hello " &dquot &"How are you ?" &quot) 

o

Dim dquot="""" 
RichTextBox1.AppendText("Hello " &dquot &"How are you ?" &quot)