2008-10-19 29 views

Respuesta

408

¿Has intentado escapar con una comilla doble?

= "Maurice ""The Rocket"" Richard" 
+0

funciona como un encanto. –

+37

¿Sería eso una 'doble comilla doble'? :) –

+5

Si quiere una cadena que solo consiste en una comilla doble, necesita "" "", que hago una doble comilla doble doble. –

128

Como alternativa, puede utilizar la función de CHAR:

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard" 
+4

Esto funciona más consistentemente para mí que '" "' Tal vez es solo porque tengo Mac Excel 2011 – Ivan

+3

@Ivanoats: No, no es una cosa de Mac (usando Windows aquí) - esto _ funciona_ más consistentemente; en mi caso, concatenar usando '&' con una comilla doble justo antes o justo después de que el signo "&" no funcionó con el método de comillas dobles-dobles. –

+0

Funciona de manera más consistente para mí, ya que a menudo necesito ajustar comillas alrededor de una cadena complicada formada por múltiples campos concatenados con signos de puntuación intercalados. En mi caso más reciente, para llegar a algo como esto: "NameOfLocation, Street Address, City, State Zip" – jamesnotjim

1

es que esto funciona para las macros utilizando .Formula = "=THEFORMULAFUNCTION("STUFF")" por lo que sería como: es que esto funciona para las macros utilizando .Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"

+1

No sé si esta sintaxis particular está disponible en VBA. Darle una oportunidad. –

+0

Parece un sí: http://bytes.com/topic/access/insights/575414-quotes-double-quotes-where-when-use-them –

7

I use una función para esto (si el libro de trabajo ya tiene VBA).

Function Quote(inputText As String) As String 
    Quote = Chr(34) & inputText & Chr(34) 
End Function 

Esto es del libro de Sue Mosher "Microsoft Outlook de programación". Luego, su fórmula sería:

="Maurice "&Quote("Rocket")&" Richard"

Esto es similar a lo que Dave DuPlantis publicadas.

16

Tres comillas dobles: " " " x " " " = "x" Excel se cambiará automáticamente a una comilla doble. por ejemplo:

=CONCATENATE("""x"""," hi") 

= "x" hi

+1

Si esto fuera cierto, elabore el resultado de = concatenar ("a" "b"). Según su observación, el resultado sería una "b. Este no es el caso. De hecho, esta expresión ni siquiera será aceptada por Excel. – whaefelinger

+1

olvidó la coma – KiwiSteve

+1

Las comillas externas en su ejemplo recién están comenzando y terminando la cadena. "" crea un carácter de cita, no "" ". –

0

VBA Función

1) .Formula = "=" "THEFORMULAFUNCTION "" & (CHAR (34) & "" cosas"" & CHAR (34)) "

2).Fórmula = "THEFORMULAFUNCTION '' cosas" ""

El primer método utiliza VBA para escribir una fórmula en una célula que da como resultado el valor calculado:

THEFORMULAFUNCTION "STUFF" 

El segundo método utiliza VBA para escribir una cadena en una célula que se traduce en el valor:

THEFORMULAFUNCTION "STUFF" 

Excel Resultado/Fórmula

1) = "THEFORMULAFUNCTION" & (CHAR (34) & "cosas" & CHAR (34))

2) THEFORMULAFUNCTION "cosas"

5

En el caso de que tenga que hacer esto con JSON:

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'") 
+1

¡Gracias! Esto me ayudó mucho. Estaba luchando por formatear correctamente una matriz JSON en mis celdas. –

+1

Gracias, justo lo que necesitaba :) – JimiSweden

2

Uso chr (34) Código: Joe = "Hola", & Chr (34) & "Joe" & Chr (34) ActiveCell.Value = Joe

Resultado: Hola, "joe"

1

Devolución de una cadena vacía o de longitud cero (p. "") para hacer que una celda aparezca en blanco es una práctica común en una fórmula de hoja de cálculo pero recreando esa opción al insertar la fórmula a través de la propiedad Range.Formula o Range.FormulaR1C1 en VBA es difícil debido a la necesidad de duplicar los caracteres de comillas dobles dentro una cadena citada.

La hoja de cálculo nativa TEXT function puede producir el mismo resultado sin utilizar comillas.

'formula to insert into C1 - =IF(A1<>"", B1, "") 
range("C1").formula = "=IF(A1<>"""", B1, """")"   '<~quote chars doubled up 
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))" '<~with TEXT(,) instead 

Para mi ojo, usando TEXT(,) en lugar de "" limpia incluso una fórmula sencilla como la de arriba. Los beneficios se vuelven cada vez más significativos cuando se usan en fórmulas más complicadas, como la práctica de anexar una cadena vacía a VLOOKUP para evitar devolver un cero a la celda cuando una búsqueda da como resultado un espacio en blanco o devuelve una cadena vacía sin coincidencia con IFERROR.

'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "") 
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")" 
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))" 

Con TEXT(,) sustitución de la antigua "" procedimiento de suministro de una cadena vacía, es posible llegar a dejar de usar un ábaco para determinar si usted tiene el número correcto de caracteres de comillas en una cadena de fórmula.

0
="Maurice "&"""TheRocker"""&" Richard" 
0

Hay otra manera, aunque más por "¿Cómo puedo construir la siguiente cadena en una fórmula de Excel: 'Maurice 'Rocket' Richard'" de "cuerdas cómo crear contienen comillas dobles en las fórmulas de Excel? ", que es simplemente usar dos comillas simples:

SO216616 example

de la izquierda es Calibri cortó a partir de una hoja de cálculo de Excel y en la derecha un recorte de una ventana de VBA. En mi opinión, escapar como lo menciona @YonahW gana 'manos a la obra' pero dos comillas simples no son más tipeadas que dos dobles y la diferencia es razonablemente evidente en VBA sin pulsaciones de teclas adicionales mientras que, potencialmente, no se nota en una hoja de cálculo.

0

Concatenate " como una célula ceparate:

A | B | C | D 
1 " | text | " | =CONCATENATE(A1; B1; C1); 

D1 displays "text" 
Cuestiones relacionadas