Saltar al contenido

¿Cómo pongo comillas dobles en un string en vba?

Luego de mucho luchar ya hallamos la solución de esta cuestión que muchos usuarios de este sitio tienen. Si quieres compartir alguna información no dudes en compartir tu comentario.

Solución:

Encuentro que la forma más fácil es duplicar las comillas para manejar una cotización.

Worksheets("Sheet1").Range("A1").Formula = "IF(Sheet1!A1=0,"""",Sheet1!A1)" 

A algunas personas les gusta usar CHR(34)*:

Worksheets("Sheet1").Range("A1").Formula = "IF(Sheet1!A1=0," & CHR(34) & CHR(34) & ",Sheet1!A1)" 

*Nota: CHAR() se usa como una fórmula de celda de Excel, por ejemplo, escribir “=CHAR(34)” en una celda, pero para el código VBA se usa la función CHR().

Otra solución es construir un string con carácter de suplente temporal. Luego puede usar REEMPLAZAR para cambiar cada carácter temporal a comillas dobles. Uso la tilde como carácter sustituto temporal.

Aquí hay un ejemplo de un proyecto en el que he estado trabajando. Esta es una pequeña rutina de utilidad para reparar una fórmula muy complicada si/cuando la celda se pisa accidentalmente. Es una fórmula difícil de ingresar a una celda, pero esta pequeña utilidad lo soluciona al instante.

Sub RepairFormula()
Dim FormulaString As String

FormulaString = "=MID(CELL(~filename~,$A$1),FIND(~[~,CELL(~filename~,$A$1))+1,FIND(~]~, CELL(~filename~,$A$1))-FIND(~[~,CELL(~filename~,$A$1))-1)"
FormulaString = Replace(FormulaString, Chr(126), Chr(34)) 'this replaces every instance of the tilde with a double quote.
Range("WorkbookFileName").Formula = FormulaString

Esto es realmente solo un truco de programación simple, pero hace que ingresar la fórmula en su código VBA sea bastante fácil.

Todas las comillas dobles dentro de comillas dobles que rodean el string debe cambiarse al doble. Como ejemplo, tuve una de las cadenas de archivo json: “entrega”: “Estándar”, en el Editor de Vba lo cambié a “””entrega””: “”Estándar””,”y todo funciona correctamente. Si tiene que insertar muchas cadenas similares, mi propuesta primero, insértelas todas entre “”, luego con el editor de VBA reemplace “dentro de “”. Si comete un error, el editor de VBA muestra esta línea en rojo y corregirá este error.

Al final de todo puedes encontrar las explicaciones de otros administradores, tú todavía tienes el poder insertar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *